我正在从事一个数据科学项目,我需要从一个网站上收集一些数据。不幸的是,到目前为止,我尝试过的所有方法都失败了,因为被网页检测到了:
目标网页中的机器人是:用户-代理:中介-Google禁用:*不允许:*不允许: /search禁用:/automoto/搜索不允许:/属性/搜索禁用:/static/promo/esales/phone/ Disallow: /my/services用户代理: Twitterbot禁用:
我试图设置木偶师,但我想不出..
我发现奇怪的是,没有一种方法来模拟手动代码检查,因此信息提取,而没有被识别为一个机器人!
你有什么意见建议?获取这些数据对于交付项目是绝对必要的。我不需要上面所要求的web自动化工具提供的速度。
发布于 2020-04-05 22:24:27
试试这个(必须包括木偶师)
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());发布于 2020-04-06 00:51:30
我遇到了抓取网站和被抓的复杂情况,特别是Facebook (如果您想看到我使用selenium的鬼鬼祟祟的实现,请参阅这。我不允许违反网站的使用条款,我也不对你违反ToS.但是的行为负责
在因自动抓取而受到限制的情况下,可以考虑通过任意的等待调用来跟踪刮取调用。下面是一个例子:
import time
min_allowable_time, max_allowable_time = (1, 7) # this is in seconds.
for x in range(0, 100):
your_scraping_function()
time.sleep(random.uniform(min_allowable_time, max_allowable_time))
your_next_page_function()变量等待时间是这里的关键。您还可以实现此刮板,以便根据一天中给定的时间运行,例如,只在08:00至22:00运行。
附注:我发现刮移动网站(即www.m.facebook.com )要容易得多
https://stackoverflow.com/questions/61045295
复制相似问题