我正在尝试从亚马逊网络收集信息,这在开始时就可以正常工作。但是在定期执行多次后,由于该网站怀疑我是机器人,所以它停止工作。
from bs4 import BeautifulSoup
import requests, re, csv, datetime, time, threading, random, schedule
urls = ['insert pages here']
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36',
}
def getStock():
for url in urls:
response = requests.get(url,headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
div = soup.find(id="availability")
print(div)
time.sleep(1)
getStock()
开始时,我希望得到如下结果:
<div class="a-section a-spacing-base" id="availability">
<span class="a-size-medium a-color-success">
Only 13 left in stock.
</span>
</div>
但是几次后,即使我没有更改网址或代码中的任何内容,它也仅返回none
。该网站只是阻止或重定向了我的请求。
如何修改我的代码以避免被网站阻止?
答案 0 :(得分:1)
网站可能会阻止您,例如,如果您过快地创建了一个网站
答案 1 :(得分:1)
一个简单的HTTP请求中有很多东西。当服务器检测到IP正在发出过多请求,并且它可能不是人类,那么他可以阻止您。有避免这种情况的方法,例如更改IP,随机user-agent
等。