先日、Twitterbotが動いていなかったのでログを調べたら、クロール先サイトに403Forbiddenを返されるようになっていました。Pythonのurllib2.urlopenのデフォルトのUser-Agentの値は"Python-urllib/(Pythonのバージョン)"のようで、これが駄目になったぽい。なのでUser-Agentを変更することで403を回避するようにしました。
コードは例えばこんな感じ
参考させて頂いたサイト
今のところ順調なので、これでしばらく様子をみることにします。
コードは例えばこんな感じ
import urllib2 from BeautifulSoup import BeautifulSoup URL = 'http://example.com' UERAGENT = 'Mozilla/5.0' req = urllib2.Request(URL) req.add_header("User-agent", USERAGENT) soup = BeautifulSoup(urllib2.urlopen(req))
参考させて頂いたサイト
- PythonでWEBページをクローリングする時のTips - saito’s blog
- 20.6. urllib2 — URL を開くための拡張可能なライブラリ — Python 2.7ja1 documentation
- userAgent一覧/ユーザーエージェント一覧
今のところ順調なので、これでしばらく様子をみることにします。