Python3でWebサイトのデータを取ってみた(PyCharmはじめ)
●こんにちわ!
PyCharmを導入してみたのでちょっと遊んでみた
結果的に作りたいものは作れなかった
もうちょい腕を磨けばできると信じて棚にそっとしまう
(来週もう一度トライすることにする・・・)
ちなみに、こういうのでデータを拾ってくのを、Webスクレイピング(クローラー)といって、しつこくやると違法だったり、そもそも認めていないサイトもあるらしく
軽率にやるのは注意が要りそう
↓この記事が有名らしい(これ自体は違法ではないよう)
岡崎市立中央図書館事件 - Wikipedia
●使用環境
JetBrains PyCharm |
Python 3.6 |
●ライブラリの準備
今回は2つのパッケージを、Default SettingのProject Interpreterからインストールします
1.Project Interpreterを開く
[File]-[Default Settings] [Project Interpreter]とクリック
最初はpipとsetuptoolsくらいしかないので、ここに必要なパッケージを足していく
▼他にもあるがこんな感じ
2.パッケージの追加
今回は下記の2つを使用した
beautifulsoup4 |
urllib3 |
画面右の緑の+(プラスアイコン)をクリックする
次の画面で「beautifulsoup4」と検索すると絞られるので
beautifulsoup4を選択した状態で、「Install Package」をクリックしOK
同様にurllib3もインストールする
元の画面もOKで閉じると導入が完了する
3.コード
検索ワードを渡すとタイトルを返すイメージ
Pythonで検索し、結果のtitle_bar内のpのテキストを表示する
# -*- coding: utf-8 -*- from time import sleep import urllib.request from bs4 import BeautifulSoup def web_test(wd): # オープンする(urlはテスト用なのでそのままでは使用不可) html = urllib.request.urlopen('https://www.example.com/search?q=%s' % wd).read() soup = BeautifulSoup(html, 'lxml') # print(soup) # 結果を確認できる # ページタイトルを表示 print('title:%s' % soup.title.string) # 特定のタグを抽出 title_bar = soup.find(id='title_bar') p = title_bar.find('p') print(p) sleep(1.5) # これを抜くとすごい速さでリクエストしてしまう危険 if __name__ == '__main__': res = web_getword('Python') if res is None: break print(res)
Pythonで検索した結果の1つめを表示している
もっと頑張ればいろいろやれることだろう
●補足
Project Interpreterはどうやらプロジェクトごとに作れるみたい
たぶん、このプロジェクトは古めのライブラリで、とかPython2.7でやりたい・・・
なんて使い分けを実現するためだと思う。
なので、パッケージを導入する際は、目的のInterpreter構成を選択していることを確認する必要がある。