[英]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)
你有什么建議?
這是我對有關速率限制的類似問題的回答:
本質上,每個 API 都有一個在特定時間范圍內更新的速率限制。 例如15分鍾。 因此,您需要查看速率限制標題或自己計算。 當您達到速率限制時,暫停您的應用程序並在下一個速率限制窗口重新開始。 某些 API 具有計數參數,您需要確保將其設置為 max 以獲得每個請求的最多響應。 此外,如果應用程序身份驗證可用於給定的 API 調用,則應用程序身份驗證通常會比用戶身份驗證獲得更多請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.