Python urlopen HTTP错误
我试图打开古腾堡项目的一个页面,用BeautifulSoup编辑Python urlopen HTTP错误,python,beautifulsoup,urllib2,Python,Beautifulsoup,Urllib2,我试图打开古腾堡项目的一个页面,用BeautifulSoup编辑 import urllib2 from bs4 import BeautifulSoup url = "http://www.gutenberg.org/files/54801/54801-h/54801-h.htm" page = urllib2.urlopen(url) soup_packtpage=BeautifulSoup(page) print(soup_packtpage) 我在cloud9工作。我有以下错误:
import urllib2
from bs4 import BeautifulSoup
url = "http://www.gutenberg.org/files/54801/54801-h/54801-h.htm"
page = urllib2.urlopen(url)
soup_packtpage=BeautifulSoup(page)
print(soup_packtpage)
我在cloud9工作。我有以下错误:
Traceback (most recent call last):
File "soup.py", line 5, in <module>
page = urllib2.urlopen(url)
File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen
return _opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 410, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 523, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 448, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 403: Forbidden
回溯(最近一次呼叫最后一次):
文件“soup.py”,第5行,在
page=urlib2.urlopen(url)
文件“/usr/lib/python2.7/urllib2.py”,urlopen中的第127行
return\u opener.open(url、数据、超时)
文件“/usr/lib/python2.7/urllib2.py”,第410行,打开
响应=方法(请求,响应)
http_响应中的文件“/usr/lib/python2.7/urllib2.py”,第523行
“http”、请求、响应、代码、消息、hdrs)
文件“/usr/lib/python2.7/urllib2.py”,第448行出错
返回自我。调用链(*args)
文件“/usr/lib/python2.7/urllib2.py”,第382行,在调用链中
结果=func(*args)
文件“/usr/lib/python2.7/urllib2.py”,第531行,默认为http\u error\u
raise HTTPError(请求获取完整url(),代码,消息,hdrs,fp)
urllib2.HTTPError:HTTP错误403:禁止
怎么了?您应该尝试使用请求包 在python 3.6中,这对我来说很好
import requests
from bs4 import BeautifulSoup as bs4
url = "http://www.gutenberg.org/files/54801/54801-h/54801-h.htm"
r = requests.get(url)
#page = urllib3.urlopen(url)
soup_packtpage = bs4(r.text, 'html.parser')
print(soup_packtpage)
paragrapghs = soup_packtpage.findAll("p")
print(paragrapghs)
f = open("guttenberg_book.html", 'a', encoding="utf-8")
f.write(str(paragrapghs))
f.close()
我使用BS4添加了一个打印段落,让您开始。。这将仅输出书本文本:) 您应该尝试使用requests包 在python 3.6中,这对我来说很好
import requests
from bs4 import BeautifulSoup as bs4
url = "http://www.gutenberg.org/files/54801/54801-h/54801-h.htm"
r = requests.get(url)
#page = urllib3.urlopen(url)
soup_packtpage = bs4(r.text, 'html.parser')
print(soup_packtpage)
paragrapghs = soup_packtpage.findAll("p")
print(paragrapghs)
f = open("guttenberg_book.html", 'a', encoding="utf-8")
f.write(str(paragrapghs))
f.close()
我使用BS4添加了一个打印段落,让您开始。。这将仅输出书本文本:)
尝试请求并添加标题。它在Python2.7.13中适用于我
尝试请求并添加标题。它在Python 2.7.13中适用于我,这是一个HTTP错误,而不是Python错误。这是说你不能提出那个要求。可能缺少标头,如Cookie或API凭据。我无法重现此问题。我得到一个巨大的打印输出。你得到403,因为它需要设置cookies。第一次尝试时,我进入了~welcome_陌生人页面,第二次尝试时,请求成功。您看到了吗?这是HTTP错误,不是python错误。这是说你不能提出那个要求。可能缺少标头,如Cookie或API凭据。我无法重现此问题。我得到一个巨大的打印输出。你得到403,因为它需要设置cookies。第一次尝试时,我进入了~welcome_陌生人页面,第二次尝试时,请求成功。这是你看到的东西吗?