如何在不被阻止的情况下爬网网站



i经常以一个小时内的数百个请求速度抓取网站。

  1. 如何使爬虫行为更像人类?
  2. 如何不通过检测机器人登录雷达?

目前与Chrome的Selenium一起爬行。

请建议。

好吧,您必须暂停循环之间的脚本。

import time
time.sleep(1)
time.sleep(N)

所以,它可以假设地工作。

import json,urllib.request
import requests
import pandas as pd
from string import ascii_lowercase
import time
alldata = []
for c in ascii_lowercase:
    response = requests.get('https://reservia.viarail.ca/GetStations.aspx?q=' + c)
    json_data = response.text.encode('utf-8', 'ignore') 
    df = pd.DataFrame(json.loads(json_data), columns=['sc', 'sn', 'pv'])  # etc., 
    time.sleep(3)
    alldata.append(df)

或,寻找一个API从您要定位的URL中获取数据。您没有发布实际的URL,因此无法确定API是否暴露。

站点可以检测到您试图爬网的许多方法。最简单的可能是IP。如果您从同一IP中提出的请求太快,则可能会被阻止。您可以将(随机(延迟介绍到脚本中以尝试慢慢。

要尽可能快地进行,您将必须使用不同的IP地址。您可以使用许多代理和VPN服务来完成此操作。

相关内容

最新更新