スクレイピング時のurllib3 とBeautifulSoupeエラーと解決の仕方一例

Python 使ってスクレイピングやってみました。

参考にしたのはこのページ Qitta

プログラミング界隈では有名なブログです。

で、ページのを参考にして、日経平均をスクレピングしてみました。

こちらのブログの情報はとっても役に立ったのですが、変更点やちょっと気を付けることもあったので書いておきます。

プログラミング無料体験はこちら↓↓↓。


urllib2は使えなかった。

Quittaさんのブログでは、webページから情報をスクレピングするために下記のコードを使っています。

import urllib2
from bs4 import BeautifulSoup
url = "http://www.nikkei.com/markets/kabu/"
html = urllib2.urlopen(url)

このまま使えればよかったのですが、urllib2はすでにインストールしてある私のライブラリのリストにはなく、その代わりにurllib3がインストールされたいたんですね。

ちなみに私のPythonはバージョン3.6.2です。

そこで、urllib2 の代わりにurllib3でやってみたんですが、

html = urllib2.urlopen(url)

でエラーが出てしまうんですよね。

urllib3だとurlopenが使えないと知って打ちのめされました。

そこでいろいろググってみると、回答らしきものがありました。

このページは中身英語ですけど、一番下のrequestsを使うやり方なら何とかいけそうなのでやってみました。

from bs4 import BeautifulSoup
import requests
url ="https://www.nikkei.com/markets/kabu/"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")

こんな感じで使ってみると何とかエラーを消すことができました。

BeautifulSoup 4って意外に面倒くさい

Pythonのライブラリの一つBeautifulSoupというのがあります。

HTMLやらXMLからデータを取得するライブラリーです。

使い方はそんなに難しくないのですが、あることを守らないとエラーの解決に何時間もかかってしまうことになります。

なので意外と初心者は何時間もPCも前で悩むことになるかもしれないので、一応書いておきますね。

全然大したことではないのですが、大文字と小文字の違いだけは守りましょう。

ライブラリーによってはすべて小文字で書いてもいいものもありますが、BeautifulSoupの場合は、BとSは必ず大文字にしましょう。

そうしないとエラーが出ます。

少なくとも私は出ました。

ちゃんと書いているのにエラーが出てその原因がわからないときは、大文字小文字をチェックしてみましょうね。

プログラミング無料体験はこちら↓↓↓。


  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です