私はBeautiful Soup for Pythonを学び、ウェブサイト "https://www.twitteraudit.com/"を解析しようとしています。検索バーにtwitter idを入力すると、数分の1秒でIDの結果が返されますが、IDによってはデータの処理に約1分かかります。この場合、HTMLがロードされた後、または結果が完了した後、どのように解析することができますか?そして、私はそれをループしようとしましたが、それはそのように動作しません。しかし、私が考えたのは、ブラウザを開いてウェブリンクを読み込んだら、それが完了したら、コンピュータにキャッシュを保存していて、次回は同じIDで実行したときです。Python Beautiful Soup
誰もがこれで私を助けることはできますか?私は助けに感謝します。私は、問題はTwitterのIDのいくつかは、まだ監査を受けておりません、と私はIndexError
を得ていたと思い下記のコード>>
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as uReq
import re
from re import sub
def HTML(myURL):
uClient = uReq(myURL)
pageHTML = uClient.read()
uClient.close()
pageSoup = soup(pageHTML, "html.parser")
return pageSoup
def fakecheck(usr):
myURLfc = "https://www.twitteraudit.com/" + usr
pgSoup = HTML(myURLfc)
foll = pgSoup.findAll("div",{"class":"audit"})
link = foll[0].div.a["href"]
real = foll[0].findAll("span",{"class":"real number"})[0]["data-value"]
fake = foll[0].findAll("span",{"class":"fake number"})[0]["data-value"]
scr = foll[0].findAll("div",{"class":"score"})[0].div
scoresent = scr["class"][1]
score = re.findall(r'\d{1,3}',str(scr))[0]
return [link, real, fake, scoresent, score]
lis = ["BarackObama","POTUS44","ObamaWhiteHouse","MichelleObama","ObamaFoundation","NSC44","ObamaNews","WhiteHouseCEQ44","IsThatBarrak","obama_barrak","theprezident","barrakubama","BarrakObama","banackkobama","YusssufferObama","barrakisdabomb_","BarrakObmma","fuzzyjellymasta","BarrakObama6","bannalover101","therealbarrak","ObamaBarrak666","barrak_obama"]
for u in lis:
link, real, fake, scoresent, score = fakecheck(u)
print ("link : " + link)
print ("Real : " + real)
print ("Fake : " + fake)
print ("Result : " + scoresent)
print ("Score : " + score)
print ("=================")
一部のデータは受信されませんか?私はあなたのコードを実行し、すべての23のクエリの結果を得た、それは正常に動作するようです。 – davedwards
返信いただきありがとうございます...状況を理解しているかもしれないこれらの値でlis値を変更するだけです..... lis = ["TomCruise"、 "TomCruiseFanCom"、 "TomCruiseBRCom"、 "TheAmyNicholson"、 "TomCruiseIndo" 「ジャパンメリニ」、「リバーギルハルハル」、「エドミハミルトン」、「トムクルーズアクト」] –
私はあなたが正しいと思っています、スクリプトウェブサイトから結果がないと報告したときに終了します。 'for 'ループを' while True: '-loopに置くと、結果を持たない' ID'で一時停止します。同時に、ページから監査を要求しますそのIDのために、そして結果が利用可能であるとき、スクリプトは続行します。それはそれを修正するだろうか? – davedwards