python - BeautifulSoup 如何从公众号获取所有推文?
问题描述
我正在尝试从给定帐户获取所有推文,但我只能获取最后 20 条推文。如何获取用户发布的所有推文?这是我的代码:
from bs4 import BeautifulSoup as bs
import urllib
#This function returns tweets from
#given username's account as a list
def get_tweets(username):
tweets = []
URL = "https://twitter.com/"+username
soup = bs(urllib.request.urlopen(URL), 'lxml')
for li in soup.find_all("li", {"data-item-type": "tweet"}):
text_p = li.find("p", class_="tweet-text")
if text_p is not None:
tweets.append(text_p.get_text())
return tweets
解决方案
在Tweepy中,您可以像这样获取用户的时间线:
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
for status in tweepy.Cursor(api.user_timeline, username).items():
print('status_id: {}, text: {}'.format(status.id, status.text.encode('utf-8')))
请注意,它正在使用Tweepy.Cursor
,它遍历列表直到没有更多项目。
推荐阅读
- java - 无法从 oracle 教程运行 Java EE 示例
- netcdf - 使用具有单个时间片的掩码来掩盖具有多个时间步长的另一个变量?
- rxjs - 如何缓冲 observable
何时计数或最大时间避免发出空数组? - swift - Swift:使用计算的结构属性实现 Comparable
- asp.net - 带有 VB 的 ASP.Net 似乎不起作用:如何使用 '@'
- arrays - 如何检查一个数组是否有 2 个相同的值?- 爪哇
- azure-cosmosdb - 具有复杂结构的 Azure 搜索和 Cosmos DB
- maven - @Unroll 不适用于 Spock 1.2 和 Groovy 2.5 的 maven 测试
- javascript - 历史推送不更新新数据
- javascript - 如何在framework7中加载多个自动完成?