こんにちは!やなぎです。
最近凄く寒いですね。
東京では、氷点下4度まで下がり48年ぶりの寒さみたいです。
名古屋でも少し積雪がありました。
外出の際には気を付けてください….
今日は、Pythonでクロール+スクレイピングができるBeautiful Soupの使い方について説明します。
簡単に出来るので、是非挑戦してみてください。
※不要に頻度を高くしたりすると、DoS攻撃と判定されてしまう可能性があるので注意してください。
使い方
使い方を説明します。
今回はCSSセレクタを利用した方法を説明します。
コード
import urllib.request import bs4 # HTMLを取得 with urllib.request.urlopen("http://sample.com") as html: soup = bs4.BeautifulSoup(html, "html.parser") # クレイピングする場所を指定 lists = soup.select("ul li a")
解説
# HTMLを取得 with urllib.request.urlopen("http://sample.com") as html: soup = bs4.BeautifulSoup(html, "html.parser")
URLからHTMLを取得します。
この時は、ページ全体のHTMLを取得してきています。
urllib.request.urlopen()に取得するサイトのURLを入れます。
# クレイピングする場所を指定 lists = soup.select("ul li a")
取得したHTMLから、取り出す場所をCSSセレクタで指定をします。
今回の場合、liが複数個ある場合は配列になって出力されます。
まとめ
この方法を利用すると、簡単にWEBサイトのスクレイピングが出来ます。
CRONなどと組み合わせることによって、定期的な実行も可能です。
ですが、クローラーを作るというのは危険でもあります。
過去に開発者が趣味で作ったクローラーで逮捕されるという事件も起きています。
参考:岡崎市立中央図書館事件
頻度は低めに設定を行い、出来る限りクロール先のサイト管理者に許可を取って行うようにしてください。
以上、PythonでスクレイピングができるBeautiful Soupの使い方でした。