第三篇 - 爬取豆瓣电影网

环境: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位就不能运行。

猜你喜欢

转载自www.cnblogs.com/smart-zihan/p/9484504.html