求帮助:如何解决拥有加密表单的爬虫问题

2018-03-03 18:02:39 +08:00
 Mrkon

欧专局: 在每次查询的时候都会运行 check提供需求页面的 cookie 的 browser.presence 项

需求页面: 欧专局专利

check 表单截图如下:

2673 次点击
所在节点    Python
10 条回复
yuanfnadi
2018-03-03 21:27:29 +08:00
puppetter
yexiaoxing
2018-03-04 03:34:13 +08:00
selenium? chromedriver?
Mrkon
2018-03-04 15:21:49 +08:00
@yuanfnadi
@yexiaoxing
能不能通过破解 js 来解决问题啊,个人不太喜欢用 selenium 之类的
locoz
2018-03-04 17:09:03 +08:00
events 是鼠标在页面里停留的位置和时间 fp 可以直接随机生成一下 ts 和 nts 是时间戳不用说了吧

"{"a":{"ts":1520152823,"events":[{"ts":73,"t":"mm","x":101,"y":27},{"ts":73,"t":"mm","x":103,"y":10},{"ts":73,"t":"mm","x":103,"y":4}......]},"fp":"4dba123c2b5b2e4f123a5c936aabcd","nts":1520152978}"

加密部分:
```
t.encode = function(e){
var t, n, r = {}, i = (e + "").split(""), o = [], a = i[0], s = 256;
for (t = 1; t < i.length; t++)
n = i[t],
r[a + n] ? a += n : (o.push(a.length > 1 ? r[a] : a.charCodeAt(0)),
r[a + n] = s,
s++,
a = n);
for (o.push(a.length > 1 ? r[a] : a.charCodeAt(0)),
t = 0; t < o.length; t++)
o[t] = String.fromCharCode(o[t]);
return o.join("")
}
```
Mrkon
2018-03-04 18:39:22 +08:00
@locoz 谢谢大神,我如何才能和你一样秀,我找到了这个 js 代码
https://worldwide.espacenet.com/hdl/js/hdl.js?date=04-03-2018
其中有一段代码:
return this.ajax({type:"POST",url:t.getUrl(t.host+"/check"),data:{data:l.encode(JSON.stringify({a:e,fp:this.fingerprint,nts:u.getNow()}))}}).
这个有用吗?如果有用我改如何继续研究呢?求解答!
locoz
2018-03-04 18:42:01 +08:00
@Mrkon 这段就是个 ajax 请求啊。。没啥用 自己实现请求部分就好了
Mrkon
2018-03-05 14:17:26 +08:00
@locoz 谢谢:),再厚着脸皮问一下,fp 是通过 js 的 fingerprint 随机生成的吗?还有就是这个表单的未加密前的模样是怎么判断出来的啊,我找了许久都没找到。
locoz
2018-03-05 17:49:22 +08:00
@Mrkon ajax 部分不是有嘛,下个断点在 encode 那就看得到了
locoz
2018-03-05 17:50:50 +08:00
@Mrkon fp 是 js 生成的浏览器指纹,爬他不用管这个,直接随机一个发过去就行
Mrkon
2018-03-06 11:25:30 +08:00
@locoz 表单已经合成,谢谢了。虽然我抓取网站还是没有成功( 302 跳转),headers,cookies,各项合成之后还是会跳转,是不是合成的 cookies 只能用一次啊,但是用浏览器进入抓取页面会过段时间才会失效,应该不是这个原因。对于隐藏表单和蜜罐肯定是不可能的。我能想到得到的招都用了,若有时间的话还望不吝赐教。

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

https://www.v2ex.com/t/434522

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

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

© 2021 V2EX