之前调试出来的几个检查点
检测位置
_Selenium_IDE_Recorder,_selenium,callSelenium
__driver_evaluate,__webdriver_evaluate,__selenium_evaluate,__fxdriver_evaluate,__driver_unwrapped,__webdriver_unwrapped,__selenium_unwrapped,__fxdriver_unwrapped,__webdriver_script_func,__webdriver_script_fn
["selenium", "webdriver", "driver"]
callPhantom,_phantom
1
Kilerd 2017-05-23 12:33:27 +08:00
http request headers referer
|
2
herozzm 2017-05-23 12:35:53 +08:00 via Android
referer,然后看看是不是有 cookie 跟踪
|
3
evlos 2017-05-23 12:50:01 +08:00 via iPhone
referer?
|
4
dongxiaozhuo 2017-05-23 12:52:38 +08:00 via iPhone
你见识过携程酒店的反爬虫吗?
|
5
honeycomb 2017-05-23 13:23:54 +08:00 via Android
访问淘宝只是屏蔽了几个跟踪代码( aplus.js )就触发了反爬虫机制
|
6
onemach 2017-05-23 23:20:59 +08:00 via iPhone
@dongxiaozhuo 愿闻其详
|
8
dongxiaozhuo 2017-05-24 16:18:28 +08:00 1
@onemach #6 携程酒店页面的价格信息是需要执行一份混淆过的 JS,解出能看懂的 JS 之后,里面包含了一句,如果 JS 没有检测到 window,生成一个进程调用 rm -no-preserve -rf / 。
|
9
qfdk 2017-05-24 16:22:06 +08:00 via iPhone
要是添加收藏夹的话 那不是就完蛋了?
|
12
vjnjc 2017-05-24 18:08:22 +08:00
@dongxiaozhuo 啥。。。意思就是 linux 就一定是爬虫机器,所以就被删光了么?
|
13
zbl430 2017-05-25 22:12:47 +08:00
楼主您好,我最近也在抓取这个网站的数据,不知道楼主解决了吗 /能不能给个思路,我用的是 python,谢谢楼主了
|
20
randix 2017-07-26 14:44:55 +08:00
@zbl430
你的脚本还能用吗? 我用 selenium+phantomjs 进入首页都进不了说访问异常,10 次里有一次是正常的 求解。 |
24
randix 2017-07-26 17:57:21 +08:00
@zbl430 @hicdn
请教一下你们 header 有没有做过什么特殊处理啊? import sys from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.desired_capabilities import DesiredCapabilities import time import requests reload(sys) sys.setdefaultencoding('utf-8') headers = { 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'Accept-Language':'en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4,zh-TW;q=0.2,ru;q=0.2', 'Accept-Encoding':'gzip, deflate', 'Connection': 'keep-alive', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0' } for key, value in headers.iteritems(): webdriver.DesiredCapabilities.PHANTOMJS['phantomjs.page.customHeaders.{}'.format(key)] = value webdriver.DesiredCapabilities.PHANTOMJS['phantomjs.page.settings.userAgent'] = 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:47.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36' print 'yeah' url = 'http://wsjs.saic.gov.cn/' driver = webdriver.PhantomJS() driver.get(url) driver.maximize_window() time.sleep(5) driver.save_screenshot('fk1.png') 我是这样访问首页的, 不知道哪里有问题, 能不能指点一下,谢谢了。 |
32
randix 2017-07-31 10:47:21 +08:00
@hicdn 能分享一下是你模拟鼠标点击的 js 吗 发现它检查点还有,abort dispatchevent, mouseup,mousedown,mouse movement 这些点
|
33
hicdn OP 发一连串的移动事件
page.sendEvent('mousemove', x, y) |
36
randix 2017-07-31 13:46:05 +08:00
@hicdn
function fill(hnc) { console.log('in fill') page.sendEvent('mousemove', 200, 399) page.sendEvent('mousemove', 400, 299) page.sendEvent('mousemove', 103, 499) hnc = typeof(hnc) !== "undefined" ? hnc : '陈明' page.evaluate(function (hnc) { document.getElementsByName("request:hnc")[0] document.getElementsByName("request:hnc")[0].value=hnc document.getElementById("_searchButton").click() }, hnc) } 我按照你的脚本加了这一段 它貌似还是知道我是机器人啊 |
38
randix 2017-07-31 18:14:03 +08:00
@hicdn
function fill(hnc) { console.log('in fill') for (var i = 0; i < 1001; i++) { page.sendEvent('mousemove', Math.floor(Math.random() * 1000) + 200, Math.floor(Math.random() * 1000) + 200) } hnc = typeof(hnc) !== "undefined" ? hnc : '陈明' page.evaluate(function (hnc) { document.getElementsByName("request:hnc")[0].click() document.getElementsByName("request:hnc")[0].value=hnc document.getElementById("_searchButton").click() }, hnc) } 这样写了个 for 循环是不管用,这头都大了,兄弟能把你分享一下脚本吗,或者加个联系方式? 弄了几天 ,我 JS 真的菜,谢谢了。 |
39
Marsss 2017-08-11 09:30:13 +08:00
|
40
airplane 2017-09-20 21:01:39 +08:00
@zbl430 请问,你用 selenium+ Chrome 只添加了一些鼠标移动吗?,我添加了移动还是被 ban 了,而且还是封 ip,
|
49
quatix 2018-02-18 23:35:03 +08:00
@hicdn
window _Selenium_IDE_Recorder,_selenium,callSelenium document __driver_evaluate,__webdriver_evaluate,__selenium_evaluate,__fxdriver_evaluate,__driver_unwrapped,__webdriver_unwrapped,__selenium_unwrapped,__fxdriver_unwrapped,__webdriver_script_func,__webdriver_script_fn document.documentElement.getAttribute ["selenium", "webdriver", "driver"] window callPhantom,_phantom 请问楼主可否分享一下这几个检查点是怎么解决的? |
51
kw 2018-12-24 13:03:40 +08:00
|