【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

'Yahoo! JAPAN'

 

①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は色々なメソッドが用意されている。

Selenium Python(ABC順)


今回は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分間の集中砲火']

 

 

f:id:yukking3:20201204012431p:plain

 

f:id:yukking3:20201204012409p:plain

 

 

 URLを収集して → 要素の取得 → 保存 の流れ

f:id:yukking3:20201204203205p:plain



 

>>> lists = sel.xpath('//*[@id="zg-ordered-list"]/li/span/div/span/a/div/text()').extract()

>>> for list in lists:

...     print

...     print(list)

 アマゾンの人気の本ランキング取得

f:id:yukking3:20201204015948p:plain