i经常以一个小时内的数百个请求速度抓取网站。
- 如何使爬虫行为更像人类?
- 如何不通过检测机器人登录雷达?
目前与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服务来完成此操作。