第三篇 - 爬取豆瓣電影網
阿新 • • 發佈:2018-08-16
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位就不能運行。
第三篇 - 爬取豆瓣電影網