1. 程式人生 > >基於Python的豆瓣電影評分查詢器

基於Python的豆瓣電影評分查詢器

指令碼執行效果:


本程式碼執行需要先安裝requestsBeautifulSoup這兩個庫。

注意: 請在命令列下使用python xxx.py方式執行指令碼,直接開啟的話,視窗會自動關閉。

程式碼如下:

# -*- coding: utf-8 -*-

import urllib
import requests
import re
from bs4 import BeautifulSoup

# 讀取使用者輸入的電影名,並轉換為url編碼
tip = u'請輸入電影名:'
tip = tip.encode('gbk')
movie_name = raw_input(tip)
movie_name = movie_name.decode('gbk').encode('utf-8')
url_head = 'http://movie.douban.com/subject_search'

# 傳送請求拿到HTML內容
payload = {'search_text': movie_name}
r = requests.get(url_head, params=payload)

# 用bs解析HTML內容
soup = BeautifulSoup(r.text, 'html.parser')

nameList = soup.select('.pl2 > a')
scoreList = soup.find_all(class_='rating_nums')
detailList = soup.select('.pl2 > p')

print('-------------------------------')

# 分別是電影名、評分、簡介
name_num = len(nameList)
score_num = len(scoreList)
detail_num = len(detailList)
for i in range(name_num):
    name = re.sub(r' ', '', nameList[i].get_text())
    score = ''
    detail = ''
    if i < score_num:
        score = scoreList[i].get_text()
    if i < detail_num:
        detail = detailList[i].get_text()
    print(name)
    if not score == '':
        print(u'評分:【' + str(score) + u'】\n')
    if not detail == '':
        print(u'簡介:'.encode('gbk') + detail.encode('gbk', 'ignore'))
    print('-------------------------------')