为什么不是';你在工作吗?(Python 2.7.10)

为什么不是';你在工作吗?(Python 2.7.10),python,beautifulsoup,Python,Beautifulsoup,我收到了消息“urllib.error.HTTPError:HTTP错误403:禁止” 说到模块,我是一个完全的初学者,所以我不知道我在做什么。抱歉。您可能需要指定用户代理: from bs4 import BeautifulSoup import urllib.request r = urllib.request.urlopen('http://www.aflcio.org/Legislation-and-Politics/Legislative-Alerts').read() soup =

我收到了消息“urllib.error.HTTPError:HTTP错误403:禁止”


说到模块,我是一个完全的初学者,所以我不知道我在做什么。抱歉。

您可能需要指定用户代理:

from bs4 import BeautifulSoup 
import urllib.request
r = urllib.request.urlopen('http://www.aflcio.org/Legislation-and-Politics/Legislative-Alerts').read()
soup = BeautifulSoup(r)
print type(soup)

因为该错误是在调用之前由
urlopen…read
引发的。显然这个网站不喜欢程序化访问,所以你是说这是因为我想看的网站?无论我选择哪个url,我都会收到错误。这些错误是否与您从这个url得到的内容有关?这是因为网站:错误的重要部分是禁止的。@是的,除非您使用某种代理,并且该代理拒绝您的传出访问或响应,否则您无法从每个可能的URL(包括Google或Facebook)获取HTTP 403错误。或者,检查您的防火墙设置-无论出于何种原因,您可能正在阻止自己的连接。
import requests
from bs4 import BeautifulSoup

ret = requests.request(
    'GET',
    'http://www.aflcio.org/Legislation-and-Politics/Legislative-Alerts',
    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8'}
)

soup = BeautifulSoup(ret.text, "html.parser")
print type(soup)