基於Python的豆瓣電影評分查詢器
阿新 • • 發佈:2019-01-23
指令碼執行效果:
本程式碼執行需要先安裝requests和BeautifulSoup這兩個庫。
注意: 請在命令列下使用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('-------------------------------')