Python 屏幕抓取推文仅返回20条推文

Python 屏幕抓取推文仅返回20条推文,python,html,twitter,Python,Html,Twitter,我尝试使用BeautifulSoup4从用户配置文件(输入:用户名)的源页面中进行抓取。 这是我的密码: import re import requests from bs4 import BeautifulSoup import webbrowser def getTweets(usrUrl): """Collects the tweets of passed @username and returns a list of tweets""" r = requests.get

我尝试使用BeautifulSoup4从用户配置文件(输入:用户名)的源页面中进行抓取。 这是我的密码:

import re
import requests
from bs4 import BeautifulSoup
import webbrowser

def getTweets(usrUrl):
    """Collects the tweets of passed @username and returns a list of tweets"""
    r = requests.get(usrUrl)
    soup = BeautifulSoup(r.content)
    tweetStream = soup.find_all('ol', {'id': 'stream-items-id'})[0].find_all('li', {'data-item-type': 'tweet'})
    for tweetTree in tweetStream:
        try:
            tweetPTags = tweetTree.div.find('div', {'class':'content'}).find_all('p')
            tweets = []
            for tag in tweetPTags:
                tweets.append(tag.text)
        except:
            pass
    return tweets

usrNm = raw_input('Provide your username: @')
usrUrl = 'https://twitter.com/' + usrNm.lower()
followersUrl = usrUrl + '/followers'
usrTweets = getTweets(usrUrl)
for tweet in UsrTweets:
    print tweet
    print '\n'
然而,我并没有收到超过20条推文。我已经试着回答过以前类似的问题,但我不能真正理解它们。我尽量不使用Twitter API,因为它的费率限制,就我个人而言,这是我第一次在线抓取,所以我想在不使用第三方抓取器的情况下这样做

在查看源页面时,我观察到了这一点。推特流以列表的形式出现,列表的最后两个元素与其他18个元素不同:

(很抱歉,您的声誉不是10,因此无法在此发布图像。)

但是,当我向下滚动到最后一条推文时,页面会自动加载更多推文,而源页面现在看起来如下所示: 红色方块将自动附加到源中

因此,我想知道新的推文流是否与标签的最后一个元素有关:
,实际上,它包含
js no dedup has scroll bump
,当用户向下滚动到底部时,它会加载更多推文

这个问题有什么解决办法吗?谢谢你的帮助


Souradeep

BeautifulSoup
对Javascript没有任何作用任何其他软件包建议,@PeterWood?快速搜索将找到Selenium+BeautifulSoup组合,例如Wow。谢谢@PeterWood@PeterWood字体哦,我错过了这部分。然而,如果你不遵守刮削时的速率限制,你将被阻止。所以做一个好公民更好。
BeautifulSoup
对Javascript没有任何作用任何其他软件包建议,@PeterWood?快速搜索会发现Selenium+BeautifulSoup组合,例如:哇。谢谢@PeterWood@PeterWood字体哦,我错过了这部分。然而,如果你不遵守刮削时的速率限制,你将被阻止。所以做一个好公民更好。