我正处于数据科学项目的中间,我需要从网站上抓取一些数据。 不幸的是,到目前为止,我尝试过的所有方法都无法通过网页检测到:
目标网页中的机器人是: 用户代理:Mediapartners-Google 不允许: 用户代理: * 禁止:/搜索 禁止:/ automoto / search 禁止:/属性/搜索 禁止:/ static_html / promo / esales / phones / 禁止:/ my / services 用户代理:Twitterbot 禁止:
我试图以某种方式设置人偶,但我无法弄清楚。
我感到奇怪的是,没有一种方法可以模拟手动代码检查,因此无法在不将其识别为机器人的情况下提取信息!
您有什么建议吗?获取这些数据对于交付项目绝对至关重要。我不需要上面所需的Web自动化工具提供的速度。
答案 0 :(得分:0)
尝试一下(必须包括木偶)
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());
答案 1 :(得分:0)
我遇到了抓取网站和被抓到的麻烦,尤其是Facebook(如果您想看到我使用硒的偷偷摸摸的实现,请参阅this。我不容忍违反网站的使用条款,我是对您违反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。
p.s。我发现抓取移动网站(即www.m.facebook.com