昨天在爬取诗词名句三国演义时,请求章节信息使用requests.get()
会出现**[WinError 10060]错误**,已经超时提示‘由于连接放在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败’的超时异常。
然后在网上搜索了一番,大部分说的是防火墙的问题。也有的是关于使用了代理的。
具体的自己可以尝试下,反正我没有用代理,防火墙关掉也没用。
期间偶尔是会请求到部分的章节信息,我就继续的慢慢的编写调试完善代码,觉得问题出在代码的请求部分。这个网站根据的我认识应该是不存在反扒的,但是是我继续分析浏览器的请求头是发现了是有cookies
的,加入cookie后也没改变。然后就想到了既然是要用到
cookie,那么对应的就是session
。就想到了使用requests的Session()类去请求
,然后就成功了。
import requests
s = requests.Session()
html = s.get(url1)
html_2 = s.get(url2)
这样访问一个网站的多个链接就可以保持会话了,从而达到不要去寻找确定cookie
通过session去请求,并不常见。具体的应用场景不太明确,还是需要多去尝试,也算是另外的一种请求方法了。