Python 屏幕抓取推文仅返回20条推文
我尝试使用BeautifulSoup4从用户配置文件(输入:用户名)的源页面中进行抓取。 这是我的密码: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
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字体哦,我错过了这部分。然而,如果你不遵守刮削时的速率限制,你将被阻止。所以做一个好公民更好。