数行で簡単 Pythonでwebサイトから情報取得
初めに
こんにちは、rickyです。
今回はPythonのLibraryであるBeautifulSoup(以下bs4)を用いて簡単にWebサイトから情報を取得する方法(構文解析)をご紹介します。
この知識を利用すればニュースサイトから必要な情報だけを取得することができます。
この記事ではQiitaのURLからトレンドを所得してみます。
まずはソースコードからです。
Qiitaからトレンド取得のソースコード
import requests
from bs4 import BeautifulSoup
url = "https://qiita.com/"
html = requests.get(url)
soup = BeautifulSoup(html.text, 'html.parser')
for trand in soup.find_all(class_="tr-Item_title"):
print(trand.text)
補足
import requests
from bs4 import BeautifulSoup
url = "https://qiita.com/"
html = requests.get(url)
soup = BeautifulSoup(html.text, 'html.parser')
for trand in soup.find_all(class_="tr-Item_title"):
print(trand.text)
はじめてbs4とrequestsを使う場合はpipでインストールしてください。
pip install bs4
pip install requests
解説
1.まずは必要なライブラリをインポートしていきます。
2.次にURLの情報をrequests.get(url)で取得します。
このとき変数htmlをprintするとという情報が出力されます。
Response 200はHTTPのレスポンスが成功したことを示しています。
html.textでHTMLファイルの内部の情報を取得できます。
3.次にbs4を使ってデータを取り出します。
textデータをparser(構文解析)にかけます。
4.今回はqiitaのトレンドを取得します。
そのための必要な情報を知るためにブラウザ開発者ツール(F12で開く)を開きます。
開発者ツールを使って欲しい情報のタグを見つけます。
今回はclassタグのtr-Item_titleという情報がよさそうです。
このタグの情報をfind_allですべて取得します。
ちなみにclassタグなのにclass_としているのはclassという単語がpythonの予約語であるためです。
for文を使って出力をします。
このときもtextを使うことでトレンドの内容だけを取得することができます。
これでqiitaのトレンドが取得できました。
お疲れさまでした。
おわりに
今回はbs4を使って構文解析を行いました。
簡単にかけてしっかり情報を取得できるので非常に便利です。
ぜひこのプログラミングを応用していろいろな情報を取得してください。
この記事が読んで下さった方の役に立てば幸いです。
参考URL
https://developer.mozilla.org/ja/docs/Web/HTTP/Status
http://kondou.com/BS4/
Author And Source
この問題について(数行で簡単 Pythonでwebサイトから情報取得), 我々は、より多くの情報をここで見つけました https://qiita.com/akiraarika932/items/3c8e81fc5a540e2d67bf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .