pikesaku’s blog

個人的なプログラム勉強メモです。記載内容について一切の責任は持ちません。

Webスクレイピング勉強

参考

Pythonでかんたんスクレイピング (JavaScript・Proxy・Cookie対応版) - Qiita

Requestモジュール
Developer Interface — Requests 2.21.0 documentation

BeautifulSoup
Beautiful Soup Documentation — Beautiful Soup 4.4.0 documentation
パーサではない。パーサー指定しパート毎に取り出すためのライブラリ。
 

メモ

BeautifulSoup

f:id:pikesaku:20190210230849p:plain

上記の"ハイプ・サイクルは〜"部分を取り出す場合、以下2つの方法あり。

soup.find("div", attrs={"class": "leftarea"}).text)
soup.find_all(attrs={"class": "leftarea"})[0].text

findでタグ指定し、属性で絞り込み。
find_allでタグ指定せず、属性で絞り込み。レスポンスはリスト。

サンプルコード

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)