python爬虫时爬取的html代码显示“请开启JavaScript并刷新该页”

最近在做python爬虫,爬取芜湖市民心声网站的时候,requests库爬取的html代码显示“请开启JavaScript并刷新该页”。郁闷了很久,百度也找不到解决办法。。。最终解决,现与大家分享:

在此之前,爬取其他网站到没有遇到过这种问题,这种类似国家网站,竟然设置了反爬虫,解决办法:使用headers里面添加cookie访问。

import requests
headers = {
    'Cookie': '__guid=114041473.1781210994388745200.1533284433697.5437; wzwsconfirm=0da2a6860c10d7c4ed6204aa5e2ef3d0; monitor_count=7; wzwstemplate=NQ==; ccpassport=ab4dfc243d0c06e9bcd43a4d50aa4883; wzwschallenge=-1; wzwsvtime=1533310126',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'
}

url = 'http://www.smxs.gov.cn/nsmxs_6.html'
r = requests.get(url, headers=headers)
r.encoding = 'gbk'
print(r.text)

headers里面参数的获取如下图:

在网站右键的审查元素里面找到

注意:Cookie的值过一段时间会发生变化,要重新获取。

水平有限,其中原理不理解的,可以百度,谢谢。

亲测可行运行结果:

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值