[英]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.