このリンク リンクの例からランキング テキスト番号を抽出しようとしています: kaggle user ranking no1。画像でより明確に:
次のコードを使用しています。
def get_single_item_data(item_url):
sourceCode = requests.get(item_url)
plainText = sourceCode.text
soup = BeautifulSoup(plainText)
for item_name in soup.findAll('h4',{'data-bind':"text: rankingText"}):
print(item_name.string)
item_url = 'https://www.kaggle.com/titericz'
get_single_item_data(item_url)
結果はNone
です。問題は、次のようにsoup.findAll('h4',{'data-bind':"text: rankingText"})
出力されることです。
[<h4 data-bind="text: rankingText"></h4>]
しかし、これを検査するときのリンクのhtmlでは次のようになります:
<h4 data-bind="text: rankingText">1st</h4>
. それは画像で見ることができます:
テキストが欠落していることは明らかです。どうすればそれを超えることができますか?
編集:端末で変数を印刷するsoup
と、この値が存在することがわかります:
したがって、経由でアクセスする方法があるはずsoup
です。
編集 2: このスタックオーバーフローの質問から最も投票された回答を使用しようとしましたが失敗しました。そのあたりの解決策かもしれません。