在MOOC学习了用python爬取网页的方法。因为和上一次看视频相隔时间太久,有一些知识点遗忘了,查了一些资料整理下来。
首先,爬取网页的通用代码框架如下:
>>> import requests
>>> url = "***"
>>> try:kv = {'user-agent':'Mozilla/5.0'}r = requests.get(url,headers = kv)r.raise_for_status()r.encoding = r.apparent_encodingprint(r.text[:1000])
except:print("爬取失败")
其中:
kv = {'user-agent':'Mozilla/5.0'} r = requests.get(r,headers= kv),是为了修改user-agent(用户代理,帮助网站识别当前访问设备)。因为网页检测出了爬虫,需要更改自己的UserAgent进行伪装,把爬虫的headers改变,伪装成普通的用户点击。关于这个问题可以参考https://blog.csdn.net/weixin_42424151/article/details/82895344这个链接。
r.raise_for_status() ,判断返回的responds类型状态是否是200,200表示连接成功。r.status_code我认为是状态对应的代码,如连接成功对应的代码是200,失败可能是404。
r.encoding = r.apparent_encoding , r.encoding 是从header的charset中猜测的页面编码方式,如果header中不存在charset字段,则默认编码方式为ISO-8859-1, r.apparent_encoding 是从网页内容总分析出来的编码方式。这句的作用是把修改响应头的编码为 request 分析后认为可能性最大的编码。“因为有时候r.apparent_encoding也会出错,所以可以先r.encoding,如果失败,在使用r.apparent_encoding”