Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 网页刮板和403禁止:我的网页刮板被网站阻止,我应该怎么做才能提出请求?_Python_Python 2.7_Request_User Agent - Fatal编程技术网

Python 网页刮板和403禁止:我的网页刮板被网站阻止,我应该怎么做才能提出请求?

Python 网页刮板和403禁止:我的网页刮板被网站阻止,我应该怎么做才能提出请求?,python,python-2.7,request,user-agent,Python,Python 2.7,Request,User Agent,我写了一个脚本从网站上提取数据。但几次之后,当我请求时,它显示403禁止 我应该为这个问题做些什么 我的代码如下: import requests, bs4 import csv links = [] with open('1-432.csv', 'rb') as urls: reader = csv.reader(urls) for i in reader: links.append(i[0]) info = [] nbr = 1 for url in l

我写了一个脚本从网站上提取数据。但几次之后,当我请求时,它显示403禁止

我应该为这个问题做些什么

我的代码如下:

import requests, bs4
import csv

links = []
with open('1-432.csv', 'rb') as urls:
    reader = csv.reader(urls)
    for i in reader:
        links.append(i[0])
info = []
nbr  = 1

for url in links:

    # Problem is here.
    sub = []
    r = requests.get(url)
    soup     = bs4.BeautifulSoup(r.text, 'lxml')
    start    = soup.find('em')
    forname  = soup.find_all('b') 
    name = []


    for b in forname:
        name.append(b.text)
    name = name[7]
    sub.append(name.encode('utf-8'))
    for b in start.find_next_siblings('b'):
        if b.text in ('Category:', 'Website:', 'Email:', 'Phone' ):
            sub.append(b.next_sibling.strip().encode('utf-8'))
    info.append(sub)
    print('Page ' + str(nbr) + ' is saved')
    with open('Canada_info_4.csv', 'wb') as myfile:
        wr = csv.writer(myfile,quoting=csv.QUOTE_ALL)
        for u in info:
            wr.writerow(u)
    nbr += 1
我应该如何向网站提出请求。 示例url是


谢谢。

可能有很多不同的问题,取决于他们的黑名单政策,修复可能为时已晚

至少,像这样刮东西通常被认为是迪克的行为。你在攻击他们的服务器。试着在你的主循环中加入一个
时间。睡眠(10)

其次,尝试设置用户代理。看到或


一个更好的解决方案是看看他们是否有一个你可以使用的API。

如果你被阻止了,你就被阻止了。大多数网站对抓取持悲观态度。你可能违反了他们的使用条款。我投票结束这个问题,因为它不是一个真正的编程问题。非常感谢。我试试看。