python利用requests自定义user-agent爬取网站

       前一段写了一个爬取墨迹天气的小爬虫,今天突然发现不能用了,因为是墨迹天气,反爬机制应该没有那么严格,应该解决一下user-agent的问题就可以了,写这篇博客,说一下requests的自定义user-agent的方式。

首先登录你想要爬取的网站:
python利用requests自定义user-agent爬取网站

我使用的是Chrome,按F12或者右键检查,进入开发者工具,点击network,可以看到,下面是空的:

python利用requests自定义user-agent爬取网站

然后随便点击一下,比如,点击一下今天,可以看到发送的数据包:

python利用requests自定义user-agent爬取网站

任意点击一个数据包,然后在右侧headers选项中,找到user-agent:
python利用requests自定义user-agent爬取网站

接下来就是代码实现了,看下面代码
url = 'https://tianqi.moji.com/weather/china/henan/'+city
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36'}
cook = {"Cookie":'BAIDUID=FE0F97F1FC37C47792091A2523CD945F:FG=1; HMACCOUNT=CC6D0E280C842123'}
response = requests.get(url, cookies=cook, headers=headers).content
     url定义要爬取网址,然后headers是user-agent,cook是cookie,cookie就是你登录一个网页时提交的密码,密码向网页提交的登陆数据,简单来说,cookie就是制作一个假身份骗过海关.
    利用get函数提交url、cookies和headers
然后接下来就可以肆无忌惮爬取你想要的数据了。

      当然网站会有很多的反爬机制,需要随机应变,至于为什么要使用我写的这个办法爬取网站,是因为很多网站都会对Headers的User-Agent进行检测,还有一部分网站会对Referer进行检测(一些资源网站的防盗链就是检测Referer)。如果遇到了这类反爬虫机制,可以直接在爬虫中添加Headers,将浏览器的User-Agent复制到爬虫的Headers中;或者将Referer值修改为目标网站域名。对于检测Headers的反爬虫,在爬虫中修改或者添加Headers就能很好的绕过。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值