如何使用 Selenium Python 从 reddit.com 搜索页面的问题中提取 title 和 href 属性

2023-12-11

我想抓取页面上所有问题的链接和标题。一个元素具有以下结构:

<a data-click-id="body" class="SQnoC3ObvgnGjWt90zD9Z" href="/r/excel/comments/ayiahc/calculating_expiration_dates_previous_solution_no/">
    <h2 class="s1okktje-0 cDxKta">
        <span style="font-weight:normal">Calculating Expiration Dates - Previous Solution No Longer Works</span>
    </h2>
</a>

I use questions = driver.find_elements_by_xpath('//a[@data-click-id="body"]')得到问题然后迭代它们for。我可以用question.get_attribute('href')获取链接。

但是,我不知道如何提取其中的标题span(来自一个question).

有谁知道如何做到这一点?


含硒

question.find_elements_by_xpath.('./h2/span').text

将返回 for 循环中底层 span 元素的文本元素

与 lxml

import requests
from lxml import html

UA = {'User-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0'}

page = requests.get('https://www.reddit.com/search?q=Expiration&type=link&sort=new',
                    headers = UA)

tree = html.fromstring(page.content)

questions = tree.xpath('//a[@data-click-id="body"]')

parsed_q = []

for question in questions:
    url = question.xpath('./@href')[0]
    title = question.xpath('./h2/span/text()')[0]
    print("Title: {} --- URL: {}".format(title,url))
    parsed_q.append(tuple([title,url]))

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

如何使用 Selenium Python 从 reddit.com 搜索页面的问题中提取 title 和 href 属性 的相关文章

  • Python 中的 if len(list)

    我正在将 Python 代码转换为 C 代码 以便利用 HPC 系统上可用的并行性 最初的程序员在 Python 中使用了一个令我困惑的条件 if rnum lt gt current res alim 0 if len f alim f
  • 如何绘制日期和月份

    我有一张随时间变化的每日趋势图表 年份与此处无关 我只想显示日期和月份 我知道你可以显示年份和月份 但事实并非如此 我尝试创建一个名为 Day Month 的新变量 import datetime as dt df Day df date
  • 当存在多个条件时替换 numpy 数组中的元素

    这个问题与以下帖子相关 如果满足条件则替换 Numpy 元素 https stackoverflow com questions 19766757 replacing numpy elements if condition is met 假
  • 无法通过 pip 安装 xmlsec

    我在运行时收到以下信息pip install xmlsec在 macOS Big Sur 11 3 1 中 Building wheels for collected packages xmlsec Building wheel for x
  • brew install python,但随后:“python-2.7.6 已安装,只是未链接”

    免责声明 菜鸟 操作系统 10 8 5 当我在 bash 中安装 python 时 我得到了这个警告和错误 https i stack imgur com TBgBT png Warning Could not link python Un
  • 如何通过ODBC检索Oracle数据库函数的结果?

    我在通过 ODBC 调用 Oracle 存储函数 而不是过程 时遇到问题 我的函数非常简单 它只是连接两个字符串 我可以通过以下方式调用它 rs c execute SELECT add str yogi bubu FROM dual fo
  • Python - 如何在 Python 中剪切字符串?

    假设我有以下字符串 http www domain com s some two 20 怎样才能脱掉之后的东西 包括 并有这个字符串 http www domain com s some 好吧 回答眼前的问题 gt gt gt s http
  • 使用Python下载YouTube视频到某个目录

    我已尝试使用以下代码在 YouTube 中下载视频并且它可以正常工作 但我想将视频保存在特定位置 现在它正在将视频保存在C Users Download 如果我想将视频保存在桌面上 我需要对代码进行哪些更改 from future impo
  • 如何测试 Flask 开发服务器是否已启动?

    我的 Flask 应用程序上有一个测试装置 它启动开发服务器来测试一些用户交互 对于第一个测试 我想确保服务器已启动 一般而言 无需测试特定响应代码 执行此操作的最佳方法是什么 我希望我能用self assertTrue response
  • lmfit 最小化失败并出现 ValueError:数组太大

    我正在尝试使用 暴力 方法来最小化 20 个变量的函数 它因神秘错误而失败 这是完整的代码 import random import numpy as np import lmfit def progress update params i
  • 将 python 字典翻译为 C++

    我有包含以下代码的 python 代码 d d 0 0 0 d 1 2 1 d 2 1 2 d 2 3 3 d 3 2 4 for i j in d print d i j d j i 不幸的是 对于我的目的来说 循环遍历 python 中
  • 从另一个未排序的numpy数组中的数据查找未排序的numpy数组中值的索引位置[重复]

    这个问题在这里已经有答案了 我有一个 numpy 数组 A 其中包含可以按任何顺序排列的唯一 ID 例如A 1 3 2 我有第二个 numpy 数组 B 它记录了 ID 何时被使用 例如B 3 3 1 3 2 1 2 3 1 1 2 3 3
  • Python 单元测试 Google Bigquery

    我在对以下代码块进行单元测试时遇到问题 from google cloud import bigquery from google oauth2 import service account def run query query gcp
  • 如何使用ssl启动flask_socketio应用程序?

    我应该如何使用 SSL 将 app run 转换为 sockio run 我有下面的应用程序启动代码与 Flask 开发服务器一起运行 if name main app run ssl context ssl cert ssl key 我现
  • 在 selenium 下运行 chromedriver 日志时,如何减少其详细程度?

    我的功能测试的詹金斯失败报告充满了这样的行 selenium webdriver remote remote connection DEBUG Finished Request selenium webdriver remote remot
  • Django 查询集和生成器

    出乎意料的是 我想知道以下使用生成器迭代结果集的方式是否会对正常迭代产生任何积极或消极的影响 eg def all items generator for item in Item objects all yield item for it
  • Python libusb pyusb“mach-o,但架构错误”

    我在使用 pyusb 模块时遇到一些问题 我已将问题范围缩小到一行 并创建了一个小示例脚本来复制错误 usr bin env python This module was created to isolate the problem in
  • 检查单元测试中是否调用了 Timer.cancel

    我正在使用threading Timer包在 x 秒后执行方法 但是 在某些情况下 我想提前执行此方法并取消计时器 因此不会调用两次 我如何对此进行单元测试 我想知道计时器是否已停止 以便不再调用该方法 我现在使用以下代码 不幸的是is a
  • 导入 matplotlib.pyplot 挂起

    我正在尝试在 OS X 10 8 4 上启动并运行 matplotlib 我已经安装了 matplotlib 和依赖项 libping freetype numpy scipy 我可以很好地导入 matplotlib 但是 如果我尝试导入
  • 就地改变 numpy 函数输出数组

    我正在尝试编写一个对数组执行数学运算并返回结果的函数 一个简化的例子可以是 def original func A return A 1 A 1 为了加速并避免为每个函数调用分配新的输出数组 我希望将输出数组作为参数 并就地更改它 def

随机推荐

  • 密码验证正则表达式

    我正在尝试获取一个执行以下操作的正则表达式 确保没有空格字符 最小长度为 8 makes sure there is at least 一个非字母字符 一个大写字符 一个小写字符 我发现这个正则表达式 a zA Z a z A Z s 8
  • 如何高效地比较Set? [复制]

    这个问题在这里已经有答案了 给定两个集合 如何在 Java 中有效地比较它们 a 将它们保留为Lists 对它们进行排序并比较 Comparable b 将它们保留为Set并比较hashCode集合的 背景 需要进行很多比较 集合很小 通常
  • 从 ViewPager 获取焦点视图

    我使用 ViewPager 通过左 右滑动来切换视图 ViewPager 需要一个适配器 所以我构建了这个 public class ListViewPagerAdapter extends PagerAdapter protected s
  • 有希望的 API 回调 - 如何正确解决或拒绝

    我读过类似的文章 但没有一篇文章很明确如何正确地做到这一点 我了解 Promise 以及它们通常是如何通过成功和失败监听器创建的 等待触发解决或拒绝 我不明白的是当我调用以成功和失败回调作为参数的 API 方法 如何确定正在触发哪个回调 以
  • 在 C# 中将位图转换为布尔数组的快速方法?

    我正在制作一个 XNA 应用程序 每秒从网络摄像头捕获屏幕截图 4 次 然后当像素颜色红色低于某个阈值时尝试将其转换为布尔数组 当我将其转换为 Texture2D 时 它不会滞后 但当我尝试获取单个像素时 即使网络摄像头分辨率为 176x1
  • 为什么长度为 1 的元组的元组实际上不是元组,除非我添加逗号?

    给定一个元组的元组T a b 和一个单独的元组t1 a b 为什么 t1 in T 返回假 更新 来自 Ipython In 22 T a b In 23 t1 a b In 24 t1 in T Out 24 False 那么如何检查一个
  • 如何使用 Google Apps 脚本读取日历事件重复设置

    我似乎无法找出如何读取重复设置的方法CalendarEventSeries使用 Google Apps 脚本 有一个setRecurrence方法 我正在寻找类似的东西getRecurrence希望它会返回EventRecurrence表示
  • 在 Ubuntu 18.04 上使用 Python3.6 安装底图

    我一直在努力得到Basemap在过去的几个小时内已启动并运行 下列的本教程 I run conda install basemap in my venv在 Pycharm 上 安装按计划进行 我在术语中收到一条消息 指出已经安装了 base
  • 如何在flutter上使用cookie发出http请求?

    我想在正确处理 cookie 的同时向远程服务器发出 http 请求 例如 存储服务器发送的 cookie 并在发出后续请求时发送这些 cookie 最好保留所有 cookie 对于我正在使用的http请求 static Future
  • UserControl 的相对源绑定

    我创建了一个UserControl用于在我的应用程序中显示超链接 这个的标记UserControl好像
  • PayPal Orders V2 未处理批准 url

    根据PayPal订单API作为此处的文档 我们必须首先创建订单 然后从响应中 我们必须复制批准 url 并在浏览器中运行 这将打开 PayPal 页面 买家将批准该请求 此后应发出捕获请求 问题详情 我有以下使用 PayPal API 创建
  • 使 div 表现得像图像

    如果 div 的背景是图像 如何使 div 的大小调整属性的行为与图像标签的行为完全相同 这个想法是复制图像标签在此代码片段中的行为方式 div background color 2DBCFF text align center box s
  • DocuSign Java Rest Api - 结合锚标记自定义文件和 PDF 表单字段转换(复合模板)

    在我的应用程序中 我有一个 PDF 包 我将其合并并发送给 DocuSign 使用 SignHere 和 Initial here AnchorTags 可以完美地完成此操作 但是 我现在需要包含某些需要用户输入字段的 PDF 例如 W 9
  • Emacs Python:Echoing、Hooks 和 Org-mode

    基于这个问题我发现了如何修复 emacs 中 python shell 的回显问题 我想要做的是将其添加到我的 emacs 文件中 以便它会自动发生 defun python startup setq comint process echo
  • Jquery 移动日期选择器未显示在弹出字段中

    I used jtsage jquery mobile date picker 我想在单击弹出窗口内的文本时显示日期选择器 但弹出窗口背面显示的日期选择器我想在弹出窗口前面显示日期选择器 我的代码就像 div a href datepop
  • 使用 smtp SendAsync 发送邮件

    这就是当我需要发送电子邮件时给我带来错误的方式 但此后给我的错误是这样的 此时无法启动异步操作 异步 操作只能在异步处理程序中启动 或者 模块或页面生命周期中的某些事件期间 如果这 执行Page时发生异常 请确保该Page是 标记为 此异常
  • 页面加载时间减少 200 毫秒是否显着? [关闭]

    Closed 这个问题是无关 目前不接受答案 我在我开发的一个网站中使用实验室 js 进行了一些测试 页面加载时间减少了 200 毫秒 现在后端处理后花费的总时间约为1 5秒 我在想是否值得这么麻烦 200ms 是一个巨大的增益吗 可笑吗
  • 一些非常基本的 HTML 中无法解释的偏移量 [重复]

    这个问题在这里已经有答案了 有时我发现自己处于这样的情况 基本上非常简单的 HTML CSS 中有一些我不理解的偏移 这是一个example div style width 100 height 92px div
  • Java JComboBox 是否可以将 editable true 设置为仅一项?

    我想创建一个JComboBox上面有三个项目 我想将其设置为仅可编辑到最后一个项目JComboBox例如 JComboBox cb new JComboBox cb addItem Dog cb addItem Cat cb addItem
  • 如何使用 Selenium Python 从 reddit.com 搜索页面的问题中提取 title 和 href 属性

    我想抓取页面上所有问题的链接和标题 一个元素具有以下结构 a class SQnoC3ObvgnGjWt90zD9Z href r excel comments ayiahc calculating expiration dates pre