【Scrapy】Selenium
今回の章
セクション13:Scrapy with Selenium
今回の目的
各書籍のURLを取得」→「順に詳細ページをスクレイピング」→「次のページへ移動」→「各書籍のURLを取得」→「詳細ページをスクレイピング」というようなイメージでクローラーを動かせば良い。
独自プログラムとしてyahoonewsもやってみた。
>>> driver = webdriver.Chrome('/Users/macbookproy/dev/venv_20201101/20201121/driver/chromedriver')
>>> driver.get( "http://www.yahoo.co.jp" )
>>> driver.title
①attribute = 属性
②method = メソッド
from selenium import webdriver
#ChromeDriverのパスを引数に指定しChromeを起動
driver = webdriver.Chrome("D:\chromedriver")
#指定したURLに遷移
driver.get("https://www.yahoo.co.jp")
#カレントページのソースコードを取得して表示
print(driver.page_source)
seleniumは色々なメソッドが用意されている。
今回はpage_source
◆メソッド ・page_source ◆使用形態 ・driver.page_source ◆備考 ・カレントページのソースコードを取得
>>> driver = webdriver.Chrome('/Users/macbookproy/dev/venv_20201101/20201121/driver/chromedriver')
>>> driver.get( "https://news.yahoo.co.jp" )
>>> from scrapy.selector import Selector
>>> sel = Selector(text=driver.page_source)
>>> sel.xpath('//*[@id="contentsWrap"]/section[1]/div/div/div/ul/li/a/text()').extract()
['NY株、一時3万ドル超える', '閉会後に安倍氏聴取へ調整', '町議が性被害訴え 議会に殺気', 'ドコモ元社員男性 セクハラ訴え', '帰省の代わりに年賀状 受注増', 'ナイキCM批判 背景の日本人観', '芸能記者 注目した渡部の言葉', '渡部会見 100分間の集中砲火']
URLを収集して → 要素の取得 → 保存 の流れ
>>> lists = sel.xpath('//*[@id="zg-ordered-list"]/li/span/div/span/a/div/text()').extract()
>>> for list in lists:
... print(list)
アマゾンの人気の本ランキング取得