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里面参数的获取如下图:

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

python爬虫时爬取的html代码显示“请开启JavaScript并刷新该页”_第1张图片

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

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

亲测可行运行结果:

python爬虫时爬取的html代码显示“请开启JavaScript并刷新该页”_第2张图片

你可能感兴趣的:(python爬虫)