参考
Pythonでかんたんスクレイピング (JavaScript・Proxy・Cookie対応版) - Qiita
Requestモジュール
Developer Interface — Requests 2.21.0 documentation
BeautifulSoup
Beautiful Soup Documentation — Beautiful Soup 4.4.0 documentation
パーサではない。パーサー指定しパート毎に取り出すためのライブラリ。
メモ
BeautifulSoup
上記の"ハイプ・サイクルは〜"部分を取り出す場合、以下2つの方法あり。
soup.find("div", attrs={"class": "leftarea"}).text) soup.find_all(attrs={"class": "leftarea"})[0].text
findでタグ指定し、属性で絞り込み。
find_allでタグ指定せず、属性で絞り込み。レスポンスはリスト。
selenium、chromedriver-binary
Python + Selenium で Chrome の自動操作を一通り - Qiita
SeleniumでChromeDriverを使ってスクレイピング | fukuの犬小屋
Selenium使ってみた(Python) - コンピュータサイエンス系勉強ノート
PythonでSeleniumを使ってスクレイピング (基礎) - Qiita
【Python】seleniumで取得した要素をクリックできないときの対処法 - 備忘録
【Python】 実践 Selenium 【前編】 - Qiita
以下URLからchromedriverをダウンロードし、/usr/loca/binに設置する必要あり。
Downloads - ChromeDriver - WebDriver for Chrome
サンプルコード
Javascript実行する必要があるやつ
けっこうはまった。。。先人に感謝!
from selenium import webdriver from selenium.webdriver.common.by import By import time from bs4 import BeautifulSoup def scraping(url): options = webdriver.ChromeOptions() options.add_argument('--headless') driver = webdriver.Chrome(options=options) driver.get(url) driver.execute_script("return(bpsso.liMov(0))") a = driver.page_source.encode('utf-8') print(a) soup = BeautifulSoup(a, "lxml") print(soup.text) driver.quit() if __name__ == '__main__': url = 'https://tech.nikkeibp.co.jp/top/it/' scraping(url)
補足
【スクレイピングと法律】スクレイピングって法律的に何がOKで何がOUTなのかを弁護士が解説。 | IT法務や仮想通貨、ICO、AIの法律に詳しい弁護士|中野秀俊
利用規約でスクレイピングNGでない & データを丸々譲渡しなければ法的にOK