我想让用户一直写所有的推文。我为此写了一个简单的python脚本,但是问题是,当浏览器打开页面并从页面源代码获取推文时,它仅从死页中提供推文。死页意味着我们无法进入。它仅显示请求的URL。 Twitter用户知道页面是动态的。因此,页面刷新时页面会刷新。我想要的是Selenium本身可以使页面向下移动,并将推文结束。
这是我的代码:
from selenium import webdriver
from bs4 import BeautifulSoup
driver_path = "C:\\Users\\Muhammd\\Desktop\\geckodriver.exe"
browser = webdriver.Firefox(executable_path= driver_path)
browser.get("https://twitter.com/ErhanErkut")
soup = BeautifulSoup(browser.page_source, 'html.parser')
tweets = [p.text for p in soup.findAll('p', class_ = 'tweet-text')]
for i in tweets:
print(i)
答案 0 :(得分:4)
我会推荐使用twitter API(请注意 screen_name 和 count ):
import twitter
api = twitter.Api(consumer_key='your-twitter app consumer key',
consumer_secret='your secret',
access_token_key='XXXX',
access_token_secret='XXXXXX')
#print(api.VerifyCredentials())
tweets = api.GetUserTimeline(screen_name="ErhanErkut", count=20)
print(tweets)
要运行上述程序,请先安装:
pip install python-twitter
然后在app
上创建一个Twitter https://developer.twitter.com/
。
在twitter应用程序上,您可以看到使用者密钥,并且可以生成访问令牌。
Twitter Developer API reference
您可以使用Twitter API下载大数据。