非常に基本的なクローラを作成して、リンクが死んでいるかどうか、またはbs4を使用していないかどうかを確認しました。 アンカータグがhrefを持っているかどうかをチェックしたいのですが(この方法で、リンクがアクティブかどうかを確認できます)。ページにはアンカー要素が1つしかありません。Beautifulsoup4 - whileループを使用してデータを取得しようとしています
これはコードです:
import requests
from bs4 import BeautifulSoup
def check():
url = 'https://somewebsite.net/'
source_code = requests.get(url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text,'html.parser')
for a in soup.findAll('a'):
href = a.get('href')
if href != '':
print('a')
else:
print('b')
check()
これは正常に動作しますが、私は、クローラがウェブサイトに数秒ごとにチェックしておきたいです。無限のwhileループを使って実装しようとしましたが、何の結果も得られませんでした。
私はこれがうまくいかなかった理由と可能な解決方法を知りたいと思います。
ありがとうございます。
私はあなたのウェブサイトによると行動する必要がありますね。 ''タグは 'src'属性を持っている可能性があります(リンクとしてのファイルなど)。そして、プログラムが数秒ごとにチェックするようにするには、' time'モジュールから 'time.sleep()'メソッドを使うことができます。いいえを入力します。あなたがプログラムがもう一度確認するのを待つ秒数。 – GadaaDhaariGeek
しばらく待つとエラーが出ますか? '要求がタイムアウトするのを待って、再試行制限を設定することができます。さらに、 'request.head'を実行して、生存しているか死んでいるかだけ関心がある場合には、ステータスコードをチェックするよう要求することができます。 – sytech
@ GadaaDhaariGeekでは、上記と同じことが適用されます。アンカータグにはsrc属性ではないhref属性があります。 –