【问题标题】:scraping tweets from twitter [duplicate]从推特上抓取推文[重复]
【发布时间】:2018-07-28 18:23:07
【问题描述】:

我正在尝试使用推文 ID 抓取推文文本,我的代码是:

import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

browser=webdriver.Chrome()
base_url='https://twitter.com/FoxNews/status/'
query='964981093127655424'
url=base_url+query
browser.get(url)
title=browser.find_element_by_tag_name('title')
print(title)

输出是:

selenium.webdriver.remote.webelement.WebElement(session="7ca1c0e4c33d62a122bc51bbc171c7eb", element="0.37665530454795326-1")

如何以人类可读的格式打印文本? (在这种情况下:“在推特上,前总统@BillClinton 呼吁更新突击武器禁令”。)

【问题讨论】:

  • @Jayanth,您已经得到了两个合格的答案,您应该选择其中一个作为您预期的解决方案。看来您对标记 answers 感到不自在。
  • 如果你收到这样的推文,你既不是在帮自己,也不是在推特上帮个忙。看看developer.twitter.com/en/docs/tweets/post-and-engage/…。只有在没有其他可能性的情况下才应该进行网络抓取,并且 twitter 提供了一种因此使用它。

标签: python selenium web-scraping


【解决方案1】:

你可以使用 WebElement 类的.text 属性。

我不认为 selenium 是抓取网站的最佳方式,你最好使用一些请求或 urllib 注入beautifulsoup,使用实际浏览器速度慢且可控性较差(cookie、html 属性等)

【讨论】:

    【解决方案2】:


    正如Ofek 指出的那样,结合使用requests/urllibbs4 将是更好的抓取选择。


    为了获得您感兴趣的文本,您可以执行以下操作:

    import requests
    from bs4 import BeautifulSoup
    
    page = requests.get("https://twitter.com/FoxNews/status/964981093127655424")
    soup = BeautifulSoup(page.content, "html.parser")
    
    tweet = soup.select_one(".js-tweet-text-container .TweetTextSize--jumbo")
    print(tweet.get_text())
    


    您的输出将如下所示:

    'On Twitter, former President @BillClinton called for a renewal of the Assault Weapons Ban.pic.twitter.com/hPaFyhGSfd'
    


    现在,让我们分解一下我们做了什么。首先requests向Twitter服务器发起GET请求,输入的URL内容保存为page中的Response对象。然后我们继续使用page 创建一个BeautifulSoup 对象。

    要查找推文文本,我们使用CSS selectors

    这是一个简单的抓取工作,如果其中任何一个对您没有意义,我建议您阅读一些教程。您可以从 this article 开始,它将教您网络抓取的基础知识并帮助您入门。

    希望这会有所帮助!

    【讨论】:

    • 感谢@novice-coder 的建议编辑。我不知道为什么你的建议被拒绝了。我已将它们纳入答案。
    猜你喜欢
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 2020-11-12
    • 2020-08-24
    • 2016-06-21
    • 1970-01-01
    相关资源
    最近更新 更多