我经常以一个小时内数百个请求的速度爬网网站。
当前使用硒,铬的网站。
请提出建议。
答案 0 :(得分:0)
网站可以通过多种方式检测到您试图对其进行爬网。最简单的可能是IP。如果从同一IP发出请求的速度过快,则可能会被阻止。您可以在脚本中引入(随机)延迟,以使其变慢。
要继续快速运行,您将不得不使用其他IP地址。您可以使用许多代理和VPN服务来完成此任务。
答案 1 :(得分:0)
好吧,您将不得不在循环之间暂停脚本。
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。