簡體   English   中英

Python美麗湯

[英]Python Beautiful Soup

我正在學習Python的Beautiful Soup,並嘗試解析一個網站“ https://www.twitteraudit.com/ ”。 當我在搜索欄中輸入Twitter ID時,它會在幾秒鍾內返回某些ID的結果,但某些ID大約需要一分鍾來處理數據。 在這種情況下,如何在加載或結果完成后解析HTML? 我試圖循環它,但是那樣行不通。 但是我想到的是,如果我打開瀏覽器並加載Web鏈接,一旦完成,它將緩存存儲在計算機中,而下一次當我運行相同的ID時,它運行得很好。

誰能幫我這個忙嗎? 感謝您的幫助。 我在下面附上代碼>>

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 ("=================")

我認為問題是某些Twitter ID尚未經過審核,因此我收到了IndexError 但是, fakecheck(u)的調用fakecheck(u) while True:循環中以捕獲該錯誤的時間將不斷檢查網站,直到對該ID進行審核為止。

我將此代碼放在lis定義之后:

def get_fake_check(n):
    return fakecheck(n)

for u in lis:
    while True:
        try:
            link, real, fake, scoresent, score = get_fake_check(u)
            break
        except:
            pass

我不確定是否可以在網站上自動執行審核請求,但是在查詢等待時,我手動單擊了網站上該ID的“ Audit ”按鈕,一旦審核完成,該腳本像往常一樣繼續進行,直到完成所有ID審核為止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM