2017-12-31 91 views
-1
import re 
import urllib.request 

url='''https://www.nseindia.com/live_market/dynaContent/live_watch/get_quote/GetQuote.jsp?symbol=''' 
Stock = input('Enter the stock name: ').upper() 
url = url + Stock 
comp_info = urllib.request.urlopen(url).read() 

コードで問題を理解できません。私はITCを入力しようとしています。HTMLパーシング禁止エラー

+0

フム、奇妙な。私はまた、レスポンスコード403のためにこのURLを 'request.urlopen'で開くことはできませんが、' requests.get() 'とうまくいっています。 –

+1

https://stackoverflow.com/questions/16627227/http-error-403-in-python-3-web-scraping –

+0

「[Python 3 Web Scraping]でHTTPエラー403が発生する可能性があります」(https://stackoverflow.com)/questions/16627227/http-error-403-in-python-3-web-scraping) – usr2564301

答えて

2

コードは正しいです。このリソースは、リクエストがブラウザから送信されたかどうかをチェックすることによって、最も単純な方法でボットをブロックしようとしているようです。

あなたはこの問題を解決するために、適切なheaderとダミーuser agentを設定することができます。

request = urllib.request.Request(url, 
           headers={'User-Agent': 'Browser'}) 
urllib.request.urlopen(request).read() 
+0

このリンクを参考に追加してくださいhttps://docs.python.org/3.4/howto/urllib2.html#headers –

+0

しかし、私はこのコード[request = urllib.request.Request(url、 header = {'User-Agent': 'Browser'})]の意味を理解していません...あなたは簡単な言葉でそれを説明することができます –

+0

@RajatGarg this HTTPヘッダーをRequestオブジェクトに設定するコードがあります。ヘッダーの名前は「User-Agent」で、値は「Browser」です。ブラウザの動作をエミュレートするためのランダムな文字列です。 User-AgentヘッダーやHTTPヘッダーについて一般的に読むべきでしょう。 –