簡體   English   中英

Twitter 爬蟲速率限制

[英]Twitter Scraper Rate Limit

我正在嘗試抓取某個帳戶的所有“關注”帳戶信息(用戶名、網站、上次推文日期)。 例如https://www.twitter.com/verified/following 如您所見,它有 365.7K 以下用戶名。

我抓取了用戶名,現在我必須訪問所有鏈接並抓取該數據。 代碼運行良好,它獲得了所有需要的信息,但是在訪問一定次數的鏈接后,Twitter 說我超出了速率限制,並且停止顯示有關我訪問的帳戶的任何信息。

def get_user_info(user):
    """Gets User Info - Username, Website, Last Tweet Date"""
    driver.get(user[0])
    sleep(1)
    username = '@' + user[0].split('/')[-1]
    attempt = 0
    while True:
        try:
            website = driver.find_element_by_xpath("//div[@data-testid='UserProfileHeader_Items']/a").get_attribute('href')
        except NoSuchElementException:
            website = 'No Website'
            attempt += 1
            sleep(1)
        try:
            last_tweet_date = driver.find_element_by_xpath("//time").get_attribute('datetime')
        except NoSuchElementException:
            last_tweet_date = 'No Tweets'
            attempt += 1
            sleep(1)
        if website != 'No Website' and last_tweet_date != 'No Tweets':
            break
        if attempt > 1:
            break

    info = (username, website, last_tweet_date)
    return info

def user_info():
    info_list = []
    users_df = pd.read_csv('UserLinks.csv')
    user_list = users_df.values.tolist()
    for user in user_list:
        info = get_user_info(user)
        info_list.append(info)

    info_df = pd.DataFrame(info_list, columns=['Username', 'Website', 'Last Tweet Date'])
    info_df.to_csv('List2.csv', index=False)

你有什么建議?

這是我對有關速率限制的類似問題的回答:

Twitter 中的速率限制是如何工作的

本質上,每個 API 都有一個在特定時間范圍內更新的速率限制。 例如15分鍾。 因此,您需要查看速率限制標題或自己計算。 當您達到速率限制時,暫停您的應用程序並在下一個速率限制窗口重新開始。 某些 API 具有計數參數,您需要確保將其設置為 max 以獲得每個請求的最多響應。 此外,如果應用程序身份驗證可用於給定的 API 調用,則應用程序身份驗證通常會比用戶身份驗證獲得更多請求。

暫無
暫無

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

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