python seleniumを使っていると処理が止まる?
初めまして.
pythonでスクレイピングをしています.
しかし,大量に(数十~数百件)下記のようなプログラムでhtmlを得ていると,
browser.page_source
で処理が止まってしまいます.
エラーが出るわけでもなく,数十分しても動き出しません.
同じような状況の方はいらっしゃいますでしょうか.
また,解決した方がいらっしゃいましたら,その方法を教えてください.
よろしくお願いいたします.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# ブラウザーを起動
options = Options()
options.add_argument('--headless')
# Chromeのドライバを得る
browser = webdriver.Chrome(chrome_options=options)
browser.set_script_timeout = 30
browser.timeout = 30
browser.implicitly_wait = 30
browser.set_page_load_timeout = 30
browser.get(url)
# htmlを取得
html = browser.page_source
追記1:
コメントありがとうございます.
大量に取得する部分ですが,
urlのリストurls = ["https://~~", "https://~~", ...]
といったものを作成し,
for url in urls:
scraping(url)
という風に記載しています.
scraping(url)は上記のようなプログラムです.
追記2:
コメントありがとうございます.
scraping(url)は上記のようなプログラムです.
この書き方がよくありませんでした.
すみません.
最初に提示したプログラムがscraping(url)です.
ですので,
def scraping(url):
# ブラウザーを起動
options = Options()
options.add_argument('--headless')
# Chromeのドライバを得る
browser = webdriver.Chrome(chrome_options=options)
browser.set_script_timeout = 30
browser.timeout = 30
browser.implicitly_wait = 30
browser.set_page_load_timeout = 30
browser.get(url)
# htmlを取得
html = browser.page_source
return (html)
このようなプログラムです.
運がいいときは,止まらずに数百件の処理を行いますが,
悪いと,数件処理した後にhtml = の部分で止まります.