requests-htmlをインストール
pip install requests-html
使い方
通常
XX件 見つかりました 該当タグ表示
※beautifulsoup, scrapyでスクレイピングできます
JavaScriptが必要な場合
Javascriptのレンダリングにより
XX件 見つかりました
※requests-html, selenium, scrapy-splashでJavascriptのレンダリングが必要
該当タグ表示
見つからない場合
見つかりません。セレクタをご確認ください。
プログラム
from requests_html import HTMLSession # URLを入力 url = 'http://www.example.com/' # CSSまたはXPATHセレクタを入力 css = '' xpath = '' def view(data): for i in data: print(i.html) def check(message, base, java): base_cnt = len(base) java_cnt = len(java) if base_cnt > 0: print(message, base_cnt, '件 見つかりました') view(base) elif java_cnt > 0: print('Javascriptのレンダリングにより') print(message, java_cnt, '件 見つかりました') print('※requests-html, selenium, scrapy-splashでスクレイピングしてください') view(java) else: print(message, '見つかりません。セレクタをご確認ください。') if __name__ == '__main__': session = HTMLSession() r = session.get(url) with open('01_base.html', mode='w', encoding='utf-8') as fw: fw.write(r.html.html) # CSSセレクタ if css: base_css = r.html.find(css) # XPATH if xpath: base_xpath = r.html.xpath(xpath) # Javascriptレンダリング r.html.render() with open('02_java.html', mode='w', encoding='utf-8') as fw: fw.write(r.html.html) # CSSセレクタ if css: java_css = r.html.find(css) check('CSS', base_css, java_css) # XPATH if xpath: java_xpath = r.html.xpath(xpath) check('XPATH', base_xpath, java_xpath)