如何使用python硒获取所有推文?

时间:2019-04-17 18:36:20

标签: python selenium firefox twitter webdriver

我想让用户一直写所有的推文。我为此写了一个简单的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)

1 个答案:

答案 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下载大数据。