0

**之前有在裁判文书上爬取数据,这段时间重新运行爬虫后发现无法获取网页数据,
找了一下发现requests网页源码返回的是乱码**

(如下截取一部分返回的数据:<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta id="JLyKZlWgYjpTkAsEt9LnA" )

不知道是不是网站对网页内容进行了加密,请问如何解决这个问题?谢谢!

截取部分程序源码:

headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language': 'zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4',
        'Accept-Encoding': 'gzip, deflate',
        'Connection': 'keep-alive',
        'Content-Type': 'text/html; charset=utf-8'}
html = requests.post('http://wenshu.court.gov.cn/List/ListContent', data=data, headers=headers)
print(html.text)

但是在审查元素里返回应该返回的数据,请问这哪里出现了问题?

之前程序正常运行时返回的数据是这样的:

5个回答

0

已采纳

ajax 加载的结果页面,如果在 network 里获取不到类似 json 的反馈结果。就使用PHANTOMJS来模拟加载。然后匹配爬取。

1

是网站方修改了页面内容的加载方式呗。
之前是直接加载的 html 现在改成了初始化了内容结构,但是内容是通过 ajax 后来加载的了。

yooz_hardy · 6月19日

展开评论
0

你的 html 对象使用的编码不对,
加入一行 html.encoding = html.apparent_encoding
根据实际获取的 text 推测编码,重新解码。

0

如果你愿意去钻,给你个参考地址:http://www.qingpingshan.com/j...

0

已经解决了,利用selenium处理网站的反爬机制,感谢yooz_hardy和prolifes提供的帮助,prolifes的方法同样可以采纳

-1

print html.content

该答案已被忽略,原因:不符合答题规范,内容不是答案,可用评论、投票替代

撰写答案