1. 程式人生 > >第三篇 - 爬取豆瓣電影網

第三篇 - 爬取豆瓣電影網

zip def str 一個 eva 電影 pycha 系統 瀏覽器

環境:python 3.6 pycharm

模塊:requests,json

 1 import requests
 2 import json
 3 
 4 #請求頭
 5 headers = {
 6     Accept : */*,
 7     Accept-Encoding : gzip, deflate, br,
 8     Connection : keep-alive,
 9     Host : movie.douban.com,
10     Referer : https://movie.douban.com/typerank?type_name=%E6%88%98%E4%BA%89&type=22&interval_id=100:90&action=
, 11 ‘User-Agent‘ : ‘‘, 12 X-Requested-With : XMLHttpRequest 13 } 14 15 def write_films(file_name): 16 ‘‘‘將電影名+評分+url存入movie.txt文件中‘‘‘ 17 num_list = [0,20,40,60,76]#動態頁面,20為一頁 18 index =1#獲取電影的個數 19 with open(file_name,w,encoding=utf-8) as f: 20 for num in num_list:
21 url_1 = https://movie.douban.com/j/chart/top_list?type=22&interval_id=100%3A90&action=&start= 22 url = url_1 + str(num) + &limit=20#每一頁的url 23 response = requests.get(url=url,headers=headers) 24 r = response.text 25 response_list = json.loads(r)
26 for item in response_list: 27 rating = eval(item.get(rating)[0]) 28 url = item.get(url) 29 title = item.get(title) 30 f.write(str(index)+:+title+,+str(rating)+,+url+\n) 31 index += 1 32 33 if __name__ == __main__: 34 write_films(movie.txt)

標紅部分註意,user-agent對應的value,360極速瀏覽器的話,可以在地址欄輸入about:version,回車,用戶代理後面的一長串就是需要填入‘‘裏面的內容。

順便說一下if __name__ == ‘__main__‘,簡單的說就是用python解釋器運行的時候,它是可以運行裏面的代碼的,如果是別的文件調用的話,那麽後面的內容就不會執行。

另外,如果想要把程序打包成.exe可執行文件的話,需要用到pyinstaller。可以用pip install pyinstall下載。pyinstaller -F hello.py就可以得到一個hello.exe了。

需要說明的是,.exe在別的電腦上運行的時候對操作系統是由要求的,如果你的exe是在win10 64位的機子上打包,那麽在win7 32位就不能運行。

第三篇 - 爬取豆瓣電影網