接触过网络爬虫的小伙伴们应该都知道requests库,这个是一个非常实用,而且容易上手的爬虫库,相比于Python自带的urllib库来说,这个requests库真的非常讨人喜欢,小编也非常的喜欢用它。
但是最近在网络爬虫的过程中,发现一个让人头大的问题。Python3使用requests 抓取信息时遇到304状态码。。。这有些让我摸不着头脑,从返回的状态码来看,应该抓取的内容没有抓取到,查询资料得知是由于请求的header中包含以下两个键值对,那么每次请求将这两个值赋值为空解决了问题: If-None-Natch,If-Modified-Since 我定义了一个动态获取的header的函数,其中USER_AGENTS是一个包含很多User-Agent的数组:
def get_header():
return {
'User-Agent': random.choice(USER_AGENTS),
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en-US,en;q=0.5',
'Connection': 'keep-alive',
'Accept-Encoding': 'gzip, deflate',
'If-None-Natch':'',
'If-Modified-Since':''
}
希望下次遇到该问题的小伙伴们,可以从这里去找到灵感,解决问题。
以上就是今天分享的内容,欢迎大家点赞,留言,转发,感谢大家的相伴与支持,想要了解更多Python知识以及想学好Python可以关注公众号:【Python的进阶之旅】有惊喜哦!