中国裁判文书网 爬虫求助

2017 年 6 月 23 日
 zbl430

http://wenshu.court.gov.cn/

裁判文书网最近更新了反爬策略,然后一直没有搞懂,希望大神可以帮忙

url = "http://wenshu.court.gov.cn/List/TreeContent"
data = {
    'Param': '上传日期:2017-06-21 TO 2017-06-22,案件类型:赔偿案件'
}
re = requests.post(url, data=data, headers=headers, timeout=60)

这样已经得不到数据了,即使加了 headers

求大神帮忙!!!

10566 次点击
所在节点    Python
45 条回复
samray
2017 年 6 月 23 日
首先,你的浏览器要能访问你要爬取的网站的 url .但是似乎  http://wenshu.court.gov.cn/List/TreeContent  浏览器是打不开的.
eoo
2017 年 6 月 23 日
页面已经挂了。
lzhr
2017 年 6 月 23 日
404
Chingim
2017 年 6 月 23 日
有时候 bug 就是那么简单,但是发现之前你已经被搞得吐血。

发自吐血的某某
lzhr
2017 年 6 月 23 日
zbl430
2017 年 6 月 23 日
@samray 这个是 post 接口,不好意思,忘说明了
zbl430
2017 年 6 月 23 日
@Chingim 看来大神有解决方案了,已经被虐很久了,求指教
zbl430
2017 年 6 月 23 日
@lzhr 然而用代码就不行
samray
2017 年 6 月 23 日
@zbl430 试试加上 cookie
Chingim
2017 年 6 月 23 日
@zbl430 没有啊, 我以为 bug 就是 404
libraor
2017 年 6 月 26 日
同道中人啊,友情支持下
nobodyBt
2017 年 6 月 29 日
友情帮顶一下,我也卡在这个网站上了,主要是 Cookie 是加密处理的,然后 js 还是混淆的~ 应该是个叫瑞数信息的公司搞的产品,很多网站在用……
simapple
2017 年 8 月 30 日
这个网站 很有意思,每一次请求翻页都要过一次验证码,加密一次密钥,带密钥访问下一个页面,你自己查看每次 http 请求的细节,就能方便的搞定了
McooLewis
2017 年 8 月 30 日
@simapple 哥们你好,请问你知道他这个验证码是怎么生成的吗,我查看了半天,不知道这个验证码是怎么生成的,谢谢.
simapple
2017 年 8 月 31 日
@McooLewis 验证码图片是后台生成的
Mrkon
2017 年 11 月 27 日
解决问题主要在于表单中的 vl5x 参数与 guid 参数
其中通过 post guid 参数到 http://wenshu.court.gov.cn/ValiCode/GetCode 得到 number,在其出现 500 时
参数 number 为'number': 'wens'

对于 guid 参数可以通过:
import random
def guid():
return hex(int((random.random() + 1) * 0x10000))[3:]

对于 vl5x 参数可以通过:
链接: http://wenshu.court.gov.cn/List/List?最后的两个函数
var _fxxx = function (p, a, c, k, e, d).....
function getKey().....
其中 getKey()返回的就是 vl5x
运行 js 代码可以通过 python 的 PyV8 模块,附教程链接: http://blog.csdn.net/hanshileiai/article/details/51628173

但是:因为本人 js 不太会,其中 vl5x 参数是通过什么改变的,转化为 python 的代码是怎样的,希望大神能不吝赐教。
fox2moon
2017 年 12 月 8 日
@Mrkon 你好 想知道你关于 vl5x 参数 你有解决办法吗?
我运行后 报错 ReferenceError: "getCookie" is not defined in <eval>#26:4<eval> at line number 1
p, a, c, k, e, d 是代表的什么?
期待你的回复
Mrkon
2017 年 12 月 8 日
@fox2moon 不好意思,js 因为最近太忙没有看过,所有还是不太懂,但是你的错误我估计出现在要导入 cookie 参数,
而其中最值得的参数是 vjkl5=0ac4559fffd034030166188f40d6a9ae4c37436f;这样的,希望能帮到你。在找到解决办法后希望给我个回复,共勉。
zbl430
2017 年 12 月 8 日
vjkl5 这个参数变换不建议使用 python 来写,非常多,就用 pyv8 吧


vjkl5=0ac4559fffd034030166188f40d6a9ae4c37436f
getKey 这个函数实际就是将 0ac4559fffd034030166188f40d6a9ae4c37436f ->> 1514b83137a527bcbfbf590d

只能说这么多了
Mrkon
2017 年 12 月 12 日
@zbl430 谢谢,能否问一下,如果作为一个资深爬虫工程师,一般需要对 js 掌握到什么程度啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/370467

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX