PythonによるWEBスクレイピングを試みています。
モジュールは、requestsとbs4を採用しています。
環境は、Windows+ChromeにJupyter Notebook、Python3です。
python3
1import requests 2from bs4 import BeautifulSoup 3 4url = "foobar" 5headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"} 6 7html = requests.post(url, headers=headers) 8print(html) 9 10soup = html.text 11print(soup) 12 13beautiful = BeautifulSoup(soup) 14 15res = beautiful.find_all("span") 16print(res)
print関数で検証していると、どうも変数htmlをprintしたところで、取得ができなくなっているようです。
ただ、不思議なのですが、時間をおいたうえで、実行してみると初回だけはしっかりとデータを取得できているので、スクレイピングができないわけではなさそうです。
ブラウザキャッシュの問題かと思い、クリアをしてみたりもしたのですが、特に変化はなく、困っているところです。
通常のブラウザで表示した場合は、そのページではページネーション化されたコンテンツが表示されるようになっています。
Pythonで表示した場合は、初回は期待通りにブラウザで表示すると同様の結果が得られますが、続けて2回目を実行すると画像や文字列が文字化けしたページの結果を取得してしまいます。
原因がよく分からないので、心当たりのある方がいらっしゃいましたら、ご教示いただけますと幸いです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。