山傘のプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

Pythonクローリング&スクレイピング[増補改訂版] ―データ収集・解析のための実践開発ガイドー その2

第 2 章 Python ではじめるクローリング・スクレイピング

venv

venv: Python 仮想環境管理 - Qiita

Python の環境を仮想環境で構築するときに使うコマンドです。Vagrant 上で Ubuntu を動かしているので、仮想環境の上に仮想環境を構築しているようなものでしょうか。

requests

Requests によって Web ページを取得します。

retuire  requests
req = requests.get("https://yamakasa3.hatenablog.com/")
// str 型にデコードする
req.text

get メソッドは HTTP の GET メソッドに対応しています。

html ファイルから特定の要素を抜き出す

import requests
import re
from html import unescape
from urllib.parse import urljoin

html = requests.get("https://gihyo.jp/dp")

for partial_html in re.findall(r'<a itemprop="url".*?</ul>\s*</a></li>', html.text, re.DOTALL):
  url = re.search(r'<a itemprop="url" href="(.*?)">', partial_html).group(1)
  url = urljoin('https://gihyo.jp/', url)
  title = re.search(r'<p itemprop="name".*?</p>', partial_html).group(0) 
  title = title.replace('<br/>', ' ')  
  title = re.sub(r'<.*?>', '', title)  
  title = unescape(title) 
  print(url, title)

f:id:yamakasa3:20190814214018p:plain