2016-12-19 62 views
0
import urllib.request 
import urllib 
from bs4 import BeautifulSoup 


url = "https://www.brightscope.com/ratings" 
page = urllib.request.urlopen(url) 
soup = BeautifulSoup(page, "html.parser") 

print(soup.title) 

我正試圖去上面的網站,代碼不斷吐出一個403禁止的錯誤。Python 3.5 urllib.request 403禁止的錯誤

任何想法?

C:\Users\jerem\AppData\Local\Programs\Python\Python35-32\python.exe "C:/Users/jerem/PycharmProjects/webscraper/url scraper.py" Traceback (most recent call last): File "C:/Users/jerem/PycharmProjects/webscraper/url scraper.py", line 7, in page = urllib.request.urlopen(url) File "C:\Users\jerem\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 163, in urlopen return opener.open(url, data, timeout) File "C:\Users\jerem\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 472, in open response = meth(req, response) File "C:\Users\jerem\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 582, in http_response 'http', request, response, code, msg, hdrs) File "C:\Users\jerem\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 510, in error return self._call_chain(*args) File "C:\Users\jerem\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 444, in _call_chain result = func(*args) File "C:\Users\jerem\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 590, in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 403: Forbidden

+0

[urllib2.HTTPError:HTTP Error 403:Forbidden]的可能重複(http://stackoverflow.com/questions/13303449/urllib2-httperror-http-error-403-forbidden) – corn3lius

回答

0
import requests 
from bs4 import BeautifulSoup 


url = "https://www.brightscope.com/ratings" 
headers = {'User-Agent':'Mozilla/5.0'} 
page = requests.get(url) 
soup = BeautifulSoup(page.text, "html.parser") 

print(soup.title) 

出來:

<title>BrightScope Ratings</title> 

首先,使用reuqests而非urllib

比,添加headersrequests,如果沒有,網站會禁止你的,因爲默認User-Agent是爬蟲,這是網站不喜歡的。