※初めて利用する為拙い部分があるかもしれません。
Pythonを初めてまだ日が浅い者です。
あるショップサイトからhtmlを取得し、一定以下の数値の商品があれば通知する。というプログラムを組んでみたいのですがテスト段階で出力を見てみたのですがhtmlソースが一部の部分までしか取得できていない状況です。
以下ソースです。
python
1import requests 2from requests.exceptions import Timeout 3from bs4 import BeautifulSoup 4 5# URL入力 6load_url = input('URL :') 7 8# UserAgent情報 Firefox(20220121時点) 9dummy_user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0" 10header = { 11 "User-Agent" : dummy_user_agent, 12 "Accept-Language" : "ja,en-US;q=0.7,en;q=0.3" 13 } 14# タイムアウト処理 15try: 16 html = requests.get(load_url, headers=header, timeout=(6.0, 7.5)) 17except Timeout: 18 print("Time out") 19 pass 20# HTTPステータスコード処理 21if html.status_code == requests.codes.ok: 22 # Windows環境だとtextが内部でエンコードがcp932になっているらしいのでUTF-8に 23 soup = BeautifulSoup(html.text.encode('cp932', "ignore").decode('utf-8', "ignore"), 'html.parser') 24 25 # HTML全体を表示する 26 print(soup) 27else: 28 html.raise_for_status() 29 print(html.txt)
環境
Windows 10 21H1 64bit
Python 3.10
使用者は自分のみ
問題点
htmlの取得が途中までしか取得されない。(表示されない?)
niconicoやYoutube等ソースが長いものは途中で途切れてしまう。
途切れる位置は毎回異なる。(Youtubeやniconicoは10000文字程度 他サイトでも8000文字程度で途切れてしまう)
質問
なぜこのような現象が起こってしまうのでしょうか。
解決策はどのようにすればよいのでしょうか。
どうしたいか
オフライン以外のどのような状況でもhtmlソースをすべて取得できるようにしたい。
参考サイトやソース改善等御教授いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/22 13:45
退会済みユーザー
2022/01/22 23:56
2022/01/23 04:47