読者です 読者をやめる 読者になる 読者になる

Perl日記

PerlとかRubyとかPHPとかPythonとか

Pythonでスクレイピングしてみた

初めてちゃんとPython使った。
バージョンは3.3.3。pyenv上で動かしてる。

ライブラリ

  • requests
  • Beautiful Soup 4

pip installした。
この2つは素晴らしいとおもいました。

やってみた

はてなホッテントリのタイトルとリンクを抽出。

import requests
from bs4 import BeautifulSoup

def main():
  res = requests.get("http://b.hatena.ne.jp/hotentry")
  soup = BeautifulSoup(res.text)

  for entry in soup.find_all("li", class_="entry-unit"):
    # 広告を除外
    if "ad-unit" not in entry["class"]:
      anchor_tag = entry.find("a", class_="entry-link")
      print("title: "+anchor_tag.string)
      print("link: "+anchor_tag["href"])

if __name__ == "__main__":
  main()

unlessがないっていうのにびっくりした。notを使うのね。
あと、classは予約語だから、class_を使うというのにもちょっとはまった。

参考

ありがとうございます。