自己写的豆瓣高分电影爬取程序
使用request和re正则库
#豆瓣电影评分榜单
import requests
import re
def getHTMLText(url):
try:
hd = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"}
r = requests.get(url,timeout=30,headers=hd)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
return""
cid = 20
for i in range(10):
print("第"+str(i)+"页的电影\n")
print("电影名称 评分")
url="https://movie.douban.com/j/search_subjects?type=movie&tag=豆瓣高分&sort=rank&page_limit=20&page_start="+str(cid)
data = getHTMLText(url)
pat1 = '"title":"(.*?)"'
pat2 = '"rate":"(.*?)"'
Movie_title=re.compile(pat1,re.S).findall(data)
Movie_rate=re.compile(pat2,re.S).findall(data)
for j in range(len(Movie_title)):
print(Movie_title[j],Movie_rate[j])
#print(Movie_title[1],"\t",Movie_rate[1])
cid+=20
学习心得:
Fiddler抓取HTTPS:
抓包器:需要设置代理服务器,并导入Fiddler的证书
目的:可以直接使用或观察抓包数据,可以跳过网站的保护
手法:通过查看增加的包来判断是什么,(比如有\u的一般都是中文编码,可以在Python中解码读出来)
可以观察出不同网址中url的区别,腾讯视频的评论全都放在同一个url里面的。可以通过规律直接抓包!
Request库的爬取:
手段不同,但是核心原理和步骤相同。
Scrapy:
准备lmxl,pywin32,wheel
使用指令去完成爬虫