如何避免网站过一会儿检测并阻止网络爬虫?

时间:2019-06-08 15:32:32

标签: python web-scraping beautifulsoup

我正在尝试从亚马逊网络收集信息,这在开始时就可以正常工作。但是在定期执行多次后,由于该网站怀疑我是机器人,所以它停止工作。

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。该网站只是阻止或重定向了我的请求。

如何修改我的代码以避免被网站阻止?

2 个答案:

答案 0 :(得分:1)

网站可能会阻止您,例如,如果您过快地创建了一个网站

答案 1 :(得分:1)

一个简单的HTTP请求中有很多东西。当服务器检测到IP正在发出过多请求,并且它可能不是人类,那么他可以阻止您。有避免这种情况的方法,例如更改IP,随机user-agent等。