2016-07-30 8 views
0

Python 3.5で次のURLを開いて解析して、割り当てのコメントを収集しようとしています。これは私のコードです:Python 3.5でurlエラーを開くことができません(http 403)

from urllib.request import Request, urlopen 
req = Request ("http://www.webmd.com/drugs/drugreview-35-Zoloft+oral.aspx?drugid=35&drugname=Zoloft+oral&conditionFilter=-500")  
home_page = urlopen(req).read() 
print (home_page) 

そして、これは誤りです:

Traceback (most recent call last): 
     File "/Users/maryamzolnoori/Dropbox/Dissertation/Programming/Web-Crawl/Askapatient_collect_comments.py", line 12, in <module> 
     home_page = urlopen(req).read() 
     File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 163, in urlopen 
     return opener.open(url, data, timeout) 
     File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 472, in open 
     response = meth(req, response) 
     File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 582, in http_response 
     'http', request, response, code, msg, hdrs) 
     File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 510, in error 
     return self._call_chain(*args) 
     File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 444, in _call_chain 
     result = func(*args) 
     File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/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 

私ものpython 2.7でそれをテストし、それが失敗しました。エラーは次のとおりです。

urllib2.HTTPError: HTTP Error 416: Requested Range Not Satisfiable 

答えて

1

あなたが最も可能性が高い禁じ403を、取得しているため、ユーザエージェントであることのpythonに。あたかもブラウザであるかのようにユーザーエージェントを設定してみてください。例えば

:また

from urllib.request import Request, urlopen 
url = "http://www.webmd.com/drugs/drugreview-35-Zoloft+oral.aspx?drugid=35&drugname=Zoloft+oral&conditionFilter=-500" 
req = Request(
    url, 
    data=None, 
    headers={ 
     'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36' 
    } 
) 

home_page = urlopen(req) 
print(home_page.read().decode('utf-8')) 

適切なエンコーディングを使用することをお勧め。

関連する問題