使用 Python 和 Beautiful Soup 4 抓取 Twitter 时专注于特定结果?

2023-12-15

这是我的帖子的后续内容使用 Python 抓取 Twitter 中的嵌套 Div 和 Spans?.

我没有使用 Twitter API,因为它不会通过以下方式查看推文: 话题标签这么远。完整的代码和输出如下示例所示。

我想从每条推文中抓取特定数据。name and handle正在准确检索我正在寻找的内容,但我无法缩小其余元素的范围。

举个例子:

 link = soup('a', {'class': 'tweet-timestamp js-permalink js-nav js-tooltip'})
 url = link[0]

检索这个:

 <a class="tweet-timestamp js-permalink js-nav js-tooltip" href="/Mikepeeljourno/status/648787700980408320" title="2:13 AM - 29 Sep 2015">
 <span class="_timestamp js-short-timestamp " data-aria-label-part="last" data-long-form="true" data-time="1443518016" data-time-ms="1443518016000">29 Sep 2015</span></a>

对于网址,我只需要href从第一行开始的值。

同样,retweets and favorites命令返回大块的 html,而我真正需要的是为每个 html 显示的数值。

如何将结果范围缩小到 url、retweetcount 和 favcount 输出所需的数据?

我计划在工作完成后对所有推文进行此循环,以防对您的建议产生影响。

完整代码:

 from bs4 import BeautifulSoup
 import requests
 import sys

 url = 'https://twitter.com/search?q=%23bangkokbombing%20since%3A2015-08-10%20until%3A2015-09-30&src=typd&lang=en'
 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'}
 r = requests.get(url, headers=headers)
 data = r.text.encode('utf-8')
 soup = BeautifulSoup(data, "html.parser")

 name = soup('strong', {'class': 'fullname js-action-profile-name show-popup-with-id'})
 username = name[0].contents[0]

 handle = soup('span', {'class': 'username js-action-profile-name'})
 userhandle = handle[0].contents[1].contents[0]

 link = soup('a', {'class': 'tweet-timestamp js-permalink js-nav js-tooltip'})
 url = link[0]

 messagetext = soup('p', {'class': 'TweetTextSize  js-tweet-text tweet-text'})
 message = messagetext[0]

 retweets = soup('button', {'class': 'ProfileTweet-actionButtonUndo js-actionButton js-actionRetweet'})
 retweetcount = retweets[0]

 favorites = soup('button', {'class': 'ProfileTweet-actionButtonUndo u-linkClean js-actionButton js-actionFavorite'})
 favcount = favorites[0]

 print (username, "\n", "@", userhandle, "\n", "\n", url, "\n", "\n", message, "\n", "\n", retweetcount, "\n", "\n", favcount) #extra linebreaks for ease of reading

完整输出:

Michael Peel

@Mikepeeljourno

<a class="tweet-timestamp js-permalink js-nav js-tooltip" href="/Mikepeeljourno/status/648787700980408320" title="2:13 AM - 29 Sep 2015"><span class="_timestamp js-short-timestamp " data-aria-label-part="last" data-long-form="true" data-time="1443518016" data-time-ms="1443518016000">29 Sep 2015</span></a>

<p class="TweetTextSize js-tweet-text tweet-text" data-aria-label-part="0" lang="en"><a class="twitter-hashtag pretty-link js-nav" data-query-source="hashtag_click" dir="ltr" href="/hashtag/FT?src=hash"><s>#</s><b>FT</b></a> Case closed: <a class="twitter-hashtag pretty-link js-nav" data-query-source="hashtag_click" dir="ltr" href="/hashtag/Thailand?src=hash"><s>#</s><b>Thailand</b></a> police chief proclaims <a class="twitter-hashtag pretty-link js-nav" data-query-source="hashtag_click" dir="ltr" href="/hashtag/Bangkokbombing?src=hash"><s>#</s><b><strong>Bangkokbombing</strong></b></a> solved ahead of his retirement this week -even as questions over case grow</p>

<button class="ProfileTweet-actionButtonUndo js-actionButton js-actionRetweet" data-modal="ProfileTweet-retweet" type="button">
<div class="IconContainer js-tooltip" title="Undo retweet">
<span class="Icon Icon--retweet"></span>
<span class="u-hiddenVisually">Retweeted</span>
</div>
<div class="IconTextContainer">
<span class="ProfileTweet-actionCount">
<span aria-hidden="true" class="ProfileTweet-actionCountForPresentation">4</span>
</span>
</div>
</button>

<button class="ProfileTweet-actionButtonUndo u-linkClean js-actionButton js-actionFavorite" type="button">
<div class="IconContainer js-tooltip" title="Undo like">
<div class="HeartAnimationContainer">
<div class="HeartAnimation"></div>
</div>
<span class="u-hiddenVisually">Liked</span>
</div>
<div class="IconTextContainer">
<span class="ProfileTweet-actionCount">
<span aria-hidden="true" class="ProfileTweet-actionCountForPresentation">2</span>
</span>
</div>
</button>

有人建议BeautifulSoup - 提取属性值那里可能有这个问题的答案。然而,我认为这个问题及其答案没有足够的背景或解释来帮助解决更复杂的情况。不过,美丽汤文档相关部分的链接很有帮助,http://www.crummy.com/software/BeautifulSoup/documentation.html#The%20 属性%20of%20 标签


Use the 类似字典的访问 to the Tag的属性。

例如,要获得href属性值:

links = soup('a', {'class': 'tweet-timestamp js-permalink js-nav js-tooltip'})
url = link[0]["href"]

或者,如果您需要获得href找到的每个链接的值:

links = soup('a', {'class': 'tweet-timestamp js-permalink js-nav js-tooltip'})
urls = [link["href"] for link in links]

作为旁注,您不需要指定完整的class值来定位元素。class是一个特殊的多值属性您可以只使用其中一个类(如果这足以缩小所需元素的搜索范围)。例如,代替:

soup('a', {'class': 'tweet-timestamp js-permalink js-nav js-tooltip'})

您可以使用:

soup('a', {'class': 'tweet-timestamp'})

Or, a CSS 选择器:

soup.select("a.tweet-timestamp")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python 和 Beautiful Soup 4 抓取 Twitter 时专注于特定结果? 的相关文章

  • 如何返回 cost, grad 作为 scipy 的 fmin_cg 函数的元组

    我怎样才能使 scipy 的fmin cg使用一个返回的函数cost and gradient作为元组 问题是有f对于成本和fprime对于梯度 我可能必须执行两次操作 非常昂贵 grad and cost被计算 此外 在它们之间共享变量可
  • 是否可以从 Julia 调用 Python 函数并返回其结果?

    我正在使用 Python 从网络上抓取数据 我想使用这些数据在 Julia 中运行计算 是否可以在 Julia 中调用该函数并返回其结果 或者我最好直接导出到 CSV 并以这种方式加载数据 绝对地 看PyCall jl https gith
  • 在Python中从大文件中搜索单词列表

    我是新蟒蛇 我有一个单词列表和一个非常大的文件 我想删除文件中包含单词列表中的单词的行 单词列表按排序给出 并且可以在初始化期间输入 我正在努力寻找解决这个问题的最佳方法 我现在正在进行线性搜索 这花费了太多时间 有什么建议么 您可以使用i
  • 从 Azure ML 实验中访问 Azure Blob 存储

    Azure ML 实验提供了通过以下方式读取 CSV 文件并将其写入 Azure Blob 存储的方法 Reader and Writer模块 但是 我需要将 JSON 文件写入 blob 存储 由于没有模块可以执行此操作 因此我尝试在Ex
  • 使用 Boto3 以字符串形式打开 S3 对象

    我知道使用 Boto 2 可以使用以下命令将 S3 对象作为字符串打开 get contents as string http boto readthedocs org en latest ref file html highlight c
  • 创建上下文后将 jar 文件添加到 pyspark

    我正在笔记本上使用 pyspark 并且不处理 SparkSession 的创建 我需要加载一个包含一些我想在处理 rdd 时使用的函数的 jar 您可以使用 jars 轻松完成此操作 但在我的特定情况下我无法做到这一点 有没有办法访问sp
  • 在 python pandas 中,如何保存“网格图”?

    我对 pandas 绘图工具很陌生 在文档中 以下命令非常方便 myplot rts ret hist bins 50 by rts primary mic 然而 当我尝试从图中获取图形参考并保存它时 问题就出现了 myfigure myp
  • 类型错误:需要二进制或 unicode 字符串,得到 618.0

    I ve been trying to implement this ML Linear Model into my dataset https www tensorflow org tutorials estimator linear L
  • AttributeError:“模块”对象没有属性[重复]

    这个问题在这里已经有答案了 我有两个 python 模块 a py import b def hello print hello print a py print hello print b hi b py import a def hi
  • 根据其他单元格值更改多个单元格值

    我想更改包含的单元格moving to movingToOpenor movingToClose基于下一个单元格中给出的状态 有时循环会被中断并且不会从open to close or close to open 这是我当前的数据框 Dat
  • 两个不同长度的数据帧的列之间的余弦相似度?

    我在 df1 中有文本列 在 df2 中有文本列 df2 的长度将与 df1 的长度不同 我想计算 df1 text 中每个条目与 df2 text 中每个条目的余弦相似度 并为每场比赛给出分数 输入样本 df1 mahesh suresh
  • python中basestring和types.StringType之间的区别?

    有什么区别 isinstance foo types StringType and isinstance foo basestring 对于Python2 basestring是两者的基类str and unicode while type
  • 查找 Pandas DF 行中的最短日期并创建新列

    我有一个包含多个日期的表 有些日期将为 NaN 我需要找到最旧的日期 所以一行可能有 DATE MODIFIED WITHDRAWN DATE SOLD DATE STATUS DATE 等 因此 对于每一行 一个或多个字段中都会有一个日期
  • pandas 相当于 np.where

    np where具有向量化 if else 的语义 类似于 Apache Spark 的when otherwise数据帧方法 我知道我可以使用np where on pandas Series but pandas通常定义自己的 API
  • 如何查找或安装适用于 Python 的主题 tkinter ttk

    过去 3 个月我一直在制作一个机器人 仅用代码就可以完美运行 现在我的下一个目标是为它制作一个 GUI 但是我发现了一些障碍 主要的一个是能够看起来不像一个 30 年前的程序 我使用的是 Windows 7 我仅使用 Python 3 3
  • 是否需要关闭没有引用它们的文件?

    作为一个完全的编程初学者 我试图理解打开和关闭文件的基本概念 我正在做的一项练习是创建一个脚本 允许我将内容从一个文件复制到另一个文件 in file open from file indata in file read out file
  • 检测是否从psycopg2游标获取?

    假设我执行以下命令 insert into hello username values me 我跑起来就像 cursor fetchall 我收到以下错误 psycopg2 ProgrammingError no results to fe
  • AWS Lambda 不读取环境变量

    我正在编写一个 python 脚本来查询 Qualys API 中的漏洞元数据 我在 AWS 中将其作为 lambda 函数执行 我已经在控制台中设置了环境变量 但是当我执行函数时 出现以下错误 module initialization
  • minizinc python 安装

    我通过 anaconda 提示符在 python 上安装了 minizinc 就像其他软件包一样 pip install minizinc 该软件包表示已成功安装 我可以导入该模块 但是 我正在遵循基本示例https minizinc py
  • rpy2 无法加载外部库

    希望有人能帮忙解决这个问题 R版本 2 14 1rpy2版本 2 2 5蟒蛇版本 2 7 3 一直在尝试在 python 脚本中使用 rpy2 加载 R venneuler 包 该包以 rJava 作为依赖项 venneuler 和 rJa

随机推荐

  • 在 Objective-C 中获取 NSURL 的一部分

    我有一个 NSString 其值为 http digg com news business 24hr 如何获得第三级之前的所有内容 http digg com news 请注意 这不完全是第三层 URL 的分割方式如下 协议或方案 这里 h
  • PHP 会话*并不总是*有效

    我最近将一堆网站迁移到新的 VPS 但 PHP 会话遇到了很多问题 所有网站的配置方式几乎相同 但有一个网站的会话并不总是有效 让我烦恼的是它是随机的 我可以访问该网站并登录 并且会话将正常工作 然后 我一小时后返回 尝试使用同一帐户登录
  • 更改 Firemonkey TListView 中的交替颜色

    将 tlistview 拖放到表单上并检查属性 AlternatingColors 为 true 默认情况下它将在列表视图上的所有其他项目上显示灰色背景 我的问题是现在有人如何将此颜色更改为其他颜色吗 Thanks 您需要编辑 TlistV
  • 如何从给定的 inode 获取路径名或 dentry 或结构文件?

    我需要知道如何获取路径名或dentry or struct file来自给定的索引节点 我正在使用file open获得struct file来自路径名 但总是引起内核恐慌 我需要一种方法来将我的 inode 列表中的 inode 与路径名
  • Prolog 替换

    如何用包含要替换的变量的另一个列表替换一个列表 例如 rep x d e z x z p x z z x d c R R z c e x z x p x 到 z 和 z 在替换后不会改变 到目前为止我只做了没有清单的那一项 rep rep
  • 方法的 ES6 对象字面量语法

    我正在看这个这一页有关 ES6 中用于声明对象内部方法的各种简写语法 我不明白这两种形式之间的区别 var foo a b and var foo x y gt y 这篇文章似乎对这两种格式做了明确的区分 但是第一种格式不就真的变成了第二种
  • 带有 jQ​​uery 和 Masked 输入插件的电话掩码

    我在使用 jQuery 屏蔽电话输入时遇到问题屏蔽输入插件 有 2 种可能的格式 XX XXXX XXXX XX XXXXX XXXX 有什么办法可以掩盖它接受这两种情况吗 EDIT I tried phone mask 99 9999 9
  • 使用 urn:schemas 按电子邮件地址搜索

    I found 这段代码来自里卡多 迪亚兹 它贯穿始终 我想搜索我收到或发送到特定的最新电子邮件电子邮件地址与搜索相反subject 我更换了 searchString urn schemas httpmail subject like e
  • 反引号 (`...`) 在 JavaScript 中调用函数

    我不知道如何解释这一点 但是当我跑步时 console log 1 在谷歌浏览器中 我得到的输出如下 console log 1 VM12380 2 1 raw Array 1 为什么反引号调用日志函数 以及为什么它创建索引raw Arra
  • Python函数默认参数随机值

    在下面的代码中 按照预期生成了一个随机值 import random for i in range 10 print random randint 0 10 但是 如果我使用函数 这将不起作用 import random def f val
  • c++:MPI 通信器作为全局变量

    我需要可以在函数 类成员函数中访问 MPI 世界通信器 但按照设计 惯例 MPI 环境和通信器总是在开始时定义和初始化 int main 我能想到的唯一简单的解决方案是使用指向通信器的全局指针 有人知道更好的方法吗 使用全局指针解决方案有危
  • 像使用 MySQL 一样获取 Twitter 关注者

    你好 假设我有一个例子 我的关注表 A B 1 2 same so its friend 2 1 same so its a friend 1 3 user 1 is following 3 1 4 user 1 is following
  • clang 错误:未知参数:'-mno-fused-madd' (python 包安装失败)

    尝试安装时出现以下错误psycopg2通过 Mavericks 10 9 上的 pip clang error unknown argument mno fused madd Wunused command line argument ha
  • 如何使用 DocumentBuilderFactory Android 应用程序在 Android 中创建、读取和写入 XML 文件

    我正在使用我的应用程序实现一项服务 在Android应用程序中如何创建XML文件以及如何读取和写入XML文件 在我们的资源文件夹中 不使用SD卡 None
  • WebBrowser 控件 onpropertychange 事件的事件处理程序 - sender 和 e 对象为 null

    在 C 中 我在服务器端线程中运行 WebBrowser WB 控件 并希望监视 侦听 onpropertychange 事件 我可以成功附加一个在属性更改时执行的 NET 委托签名方法 但是sender 和 e 对象均为 null因此 在
  • IronPython 和 C# - 对 C# 对象的脚本访问

    考虑下面的代码 ScriptRuntimeSetup setup Python CreateRuntimeSetup null ScriptRuntime runtime new ScriptRuntime setup ScriptEngi
  • Android Studio 中的 ListFragment

    我正在浏览在线教程 试图了解 ListFragment 的工作原理以及我们如何使用它 这些教程有点模糊 我无法理解它到底是如何工作的 也无法在 Android Studio 上实现 ListFragment 有人可以提供有关 ListFra
  • 从分层 JSON 中挑选出简单属性

    尽管其他用户对我的标题进行了编辑 但我正在寻找一种使用 C 中的 JSON NET 库的解决方案 包含伪代码的回复就可以了 我正在尝试使用 JSON 数据集提供的分层数据 我正在使用 C 和 JSON NET 如果有帮助的话 我愿意一般 使
  • HTTP 页面正在删除我的安全 cookie

    我有一个混合 HTTP HTTPS 的网站 当用户登录时 她会收到两个 cookie 包含她 签名 用户名 登录过期时间和 不安全 标志的常规 cookie a secure cookie with her signed username
  • 使用 Python 和 Beautiful Soup 4 抓取 Twitter 时专注于特定结果?

    这是我的帖子的后续内容使用 Python 抓取 Twitter 中的嵌套 Div 和 Spans 我没有使用 Twitter API 因为它不会通过以下方式查看推文 话题标签这么远 完整的代码和输出如下示例所示 我想从每条推文中抓取特定数据