首页 > 解决方案 > 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

标签: pythontwitterbeautifulsoup

解决方案


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,它遍历列表直到没有更多项目。


推荐阅读