LoginSignup
7
9

More than 5 years have passed since last update.

PythonのWebスクレイピングでProxy設定のため応答がなかったときの対処

Posted at

Pythonでスクレイピングで必要なWeb情報を自動抽出するプログラムを作成しようとしたときにエラーではまってしまったときの対処を備忘録として残しておきます。

PythonのurllibとBeautifulsoupによりWebスクレイピングプログラムを作ろうとしていました。
しかし、最初のurllib.request.urlopen(...)による応答が得られないエラー(以下のようなメッセージが表示される)が発生しました。
「一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。」

調べているとProxyサーバーの存在により、通信が確立されていないようです。
ProxyはInternet Explorerで以下のようになっていました。

  • [ツール]->[インターネットオプション]->[接続]->[LANの設定]

  • 自動構成スクリプトを使用する

自動構成スクリプトは、 http://proxy.-----.co.jp/proxy.pacとなっていました。
 (-----は実際のものでなく、伏字にしています。)

urlopenする前に、urllib.requestに対して、ProxyHandlerを用意して、build_openerに設定し、build_openerをインストールするという手順を入れると解決しました。

サンプルコードは以下になります。

scrapetest.py
import urllib.request
proxies ={'http':'http://proxy.-----.co.jp/proxy.pac'}
proxy_handler = urllib.request.ProxyHandler(proxies)
opener = urllib.request.build_opener(proxy_handler)
urllib.request.install_opener(opener)
html = urllib.request.urelopen("http://wwww.pythonscraping.com/pages/page1.html")
print(html.read())

開発環境は、WindowsでAnacondaによるPython3.5.2です。

Webスクレイピングのプログラミングについては、下の本で学習します。
 PythonによるWebスクレイピング(オライリー社)

7
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
9