BeautifulSoup 选择具有特定类的某些元素中的所有 href

2023-12-23

我正在尝试从中删除图像网站。我尝试使用 Scrapy(使用 Docker)和 scrapy/slenium。 Scrapy 似乎不适用于 windows10 home,所以我现在尝试使用 Selenium/Beautifulsoup。我正在将 Python 3.6 与 Spider 一起使用到 Anaconda 环境中。

这就是我需要的 href 元素的样子:

<a class="emblem" href="detail/emblem/av1615001">

我必须解决主要问题:
- 我应该如何使用 Beautifulsoup 选择 href?在我的代码下面,您可以看到我尝试过的内容(但没有成功)
- 由于可以观察到 href 只是 url 的部分路径...我应该如何处理这个问题?

到目前为止我的代码是:

from bs4 import BeautifulSoup
from time import sleep
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import urllib 
import requests
from os.path  import basename


def start_requests(self):
        self.driver = webdriver.Firefox("C:/Anaconda3/envs/scrapy/selenium/webdriver")
        #programPause = input("Press the <ENTER> key to continue...")
        self.driver.get("http://emblematica.grainger.illinois.edu/browse/emblems?Filter.Collection=Utrecht&Skip=0&Take=18")
        html = self.driver.page_source

        #html = requests.get("http://emblematica.grainger.illinois.edu/browse/emblems?Filter.Collection=Utrecht&Skip=0&Take=18")
        soup = BeautifulSoup(html, "html.parser")        
        emblemshref = soup.select("a", {"class" : "emblem", "href" : True})

        for href in emblemshref:
            link = href["href"]
            with open(basename(link)," wb") as f:
                f.write(requests.get(link).content)

        #click on "next>>"         
        while True:
            try:
                next_page = self.driver.find_element_by_xpath("//a[@id='next']")
                sleep(3)
                self.logger.info('Sleeping for 3 seconds')
                next_page.click()

                #here again the same emblemshref loop 

            except NoSuchElementException:
                #execute next on the last page
                self.logger.info('No more pages to load') 
                self.driver.quit()
                break 

您可以通过类名获取 href,如下所示:

que1:

for link in soup.findAll('a', {'class': 'emblem'}):
   try:
      print link['href']
   except KeyError:
      pass`
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BeautifulSoup 选择具有特定类的某些元素中的所有 href 的相关文章

  • Pandas 中允许重复列

    我将一个大的 CSV 包含股票财务数据 文件分割成更小的块 CSV 文件的格式不同 像 Excel 数据透视表之类的东西 第一列的前几行包含一些标题 公司名称 ID 等在以下列中重复 因为一家公司有多个属性 而不是一家公司只有一栏 在前几行
  • 为什么Python的curses中escape键有延迟?

    In the Python curses module I have observed that there is a roughly 1 second delay between pressing the esc key and getc
  • 在Python中调整图像大小

    我有一张尺寸为 288 352 的图像 我想将其大小调整为 160 240 我尝试了以下代码 im imread abc png img im resize 160 240 Image ANTIALIAS 但它给出了一个错误TypeErro
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • Jquery 中的动态滚动位置

    请帮助我解决以下情况 我有 3 个页面 当滚动到达第二页时 用户滚动页面 它必须找到特定的 ID 然后触发一个函数 一旦第三页开始 另一个函数就会触发 根据要求我不应该使用任何插件
  • Numpy 过滤器平滑零区域

    我有一个 0 及更大整数的 2D numpy 数组 其中值代表区域标签 例如 array 9 9 9 0 0 0 0 1 1 1 9 9 9 9 0 7 1 1 1 1 9 9 9 9 0 2 2 1 1 1 9 9 9 8 0 2 2 1
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • 将 JSON 对象传递给带有请求的 url

    所以 我想利用 Kenneth 的优秀请求模块 https github com kennethreitz requests 在尝试使用时偶然发现了这个问题自由库API http wiki freebase com wiki API 基本上
  • Pandas 根据 diff 列形成簇

    我正在尝试使用 Pandas 根据表示时间 以秒为单位 的列中的差异来消除数据框中的一些接近重复项 例如 import pandas as pd numpy as np df pd DataFrame 1200 1201 1233 1555
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • 无法在 osx-arm64 上安装 Python 3.7

    我正在尝试使用 Conda 创建一个带有 Python 3 7 的新环境 例如 conda create n qnn python 3 7 我收到以下错误 Collecting package metadata current repoda
  • 使用 JS 合并具有相同值的相邻 HTML 表格单元格

    我已经为此苦苦挣扎了一段时间 我有一个根据一些 JSON 数据自动生成的表 该数据可能会有所不同 我想合并第一列中具有相同值的相邻单元格 例如此表中的 鱼 和 鸟 table tr td fish td td salmon td tr tr
  • 使用 NumPy 将非均匀数据从文件读取到数组中

    假设我有一个如下所示的文本文件 33 346 1223 10 23 11 23 12 23 13 23 14 23 15 23 16 24 10 24 11 24 12 24 13 24 14 24 15 24 16 25 14 25 15
  • 使用yield 进行字典理解

    作为一个人为的例子 myset set a b c d mydict item yield join item s for item in myset and list mydict gives as cs bs ds a None b N
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel
  • 在Python中按属性获取对象列表中的索引

    我有具有属性 id 的对象列表 我想找到具有特定 id 的对象的索引 我写了这样的东西 index 1 for i in range len my list if my list i id specific id index i break
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch
  • 三级十进制有序列表 CSS

    我有一个 html 中的三级有序列表 我想为其提供如下样式 1 Item 1 1 1 Item 2 1 1 1 Item 3 下一个 plunker 中有一个 html 示例 http plnkr co edit DqhZ5pJILTUHG
  • HTML 默认图像大小

    我在我的代码上显示 3 张图片 图片具有不同的尺寸 宽度和高度 div class row div class col lg 12 h2 class page header Gallery h2 div div class col md 4
  • 迭代 pandas 数据框的最快方法?

    如何运行数据框并仅返回满足特定条件的行 必须在之前的行和列上测试此条件 例如 1 2 3 4 1 1 1999 4 2 4 5 1 2 1999 5 2 3 3 1 3 1999 5 2 3 8 1 4 1999 6 4 2 6 1 5 1

随机推荐

  • 使用 iTextSharp 将图像添加到 PDF 并正确缩放

    这是我的代码 它正确添加了我想要的图片并且一切正常except图像使用其原始分辨率 因此如果图像很大 则会被裁剪以适合页面 有没有什么方法可以让图片像缩放功能一样拉伸以适合 但又保持纵横比 那里一定有我想念的东西 P Here s a pi
  • R中的数据帧累积游程长度编码

    我有一个数据帧 其中包含与观察值 1 或 0 相关的值 我想计算 1 的连续出现次数 重置为 0 游程长度编码函数 rle 看起来它可以完成工作 但我无法将数据转换为所需的格式 我想尝试在不编写自定义函数的情况下执行此操作 在下面的数据中
  • 如何计算多边形的圆角?

    我正在寻找一种允许我从多边形创建圆角的算法 我有一个代表多边形的点数组 以红色轮廓 并且在输出时我想要一个代表带圆角的多边形 以黑色轮廓 的点数组 我还希望有一种方法来控制每个角的半径 我尝试使用贝塞尔曲线和细分 但这不是我想要的 贝塞尔曲
  • 从 avro 文件复制时导入 SUPER 列失败

    是否可以从 avro 文件复制到 SUPER 列 我正在使用以下查询来导入 copy small table from s3 xxxx redshift chunk 1782431332154490799 avro access key i
  • Ajax 控制台错误:ReferenceError:$ 未定义

    我的 html 页面上的一个小脚本有问题 它只是一个应该由 a 标记中的 onclick 方法调用的函数 它不起作用 每次我单击浏览器中的链接时 控制台都会显示 ReferenceError 未定义 并指向下面代码的第三行 您需要
  • 如何在 Elastic High Level Rest Client 中使用 search_after 进行分页

    我正在使用弹性 RestHighLevelClient 与 ES 对话 我能够查询基本查询 尽管我正在尝试使用 search after api 从我的前端查询中设计分页 api 尽管 query after 在 RestLowLevelC
  • 在 Python 中使用 Selenium Webdriver 下载图像

    我正在尝试使用 Python 中的 Selenium Webdriver 从 URL 下载图像 该站点受登录页面保护 因此不能仅使用请求保存 URL 内容 登录后我可以从网站获取文本 但我不知道如何保存图像 登录该网站后 我可以执行以下操作
  • 以用户的区域设置格式和时间偏移显示日期/时间

    我希望服务器始终在 HTML 中提供 UTC 日期 并让客户端站点上的 JavaScript 将其转换为用户的本地时区 如果我可以以用户的区域设置日期格式输出 那就太好了 似乎从 UTC 日期开始最简单的方法是创建一个新的Date对象并使用
  • 在 Woocommerce 3 中添加新产品类型

    在 Woocommerce 中 我创建了自定义产品类型live stream 但是 当我在此自定义类型中创建新产品并发布它时 该产品仍然是 简单产品 并且没有获得live stream为其设置自定义类型 我做错了什么 如何使定制产品类型发挥
  • Django 中的 OneToOne 和子类化模型有什么区别

    例如 class Subdomain Site fields here and class Subdomain models Model site models OneToOne Site fields here 型号带有OneToOne拥
  • 通过在 Maven 中运行项目的 java 类来生成源

    我正在将一个较大的 Ant 构建转换为 Maven 作为 Ant 构建的一部分 我们有几个步骤通过调用项目的类之一来创建 Java 类 简化为 javac SomeGenerator java java SomeGenerator gene
  • 硒和 iframe

    我有一个 iframe 当我单击页面上的选项卡时会加载该 iframe 当我使用 Firebug 查看 IE8 上的 iframe 时 我看到的是 iframe id tabContextFrame class contextFrame c
  • Docker如何传递相对路径作为参数

    我想运行这个命令 docker run docker mup deploy config deploy mup js where docker mup是图像的名称 并且deploy config deploy mup js是参数 我的问题
  • 使用 Active Directory 或成员数据库进行 MVC 4 身份验证

    我正在构建一个可以通过两种方式访问 的网络应用程序 与我在同一组织工作的每个人都可以使用我们的活动目录来访问该应用程序 来自外部的每个人都应该通过单独的会员数据库加入该应用程序 每个人都应该在会员数据库中拥有一个包含其角色的帐户 因此广告连
  • 登录自定义路由被身份验证拒绝

    Router scope club slug function routes routes gt connect login controller gt Users action gt login 所以当我尝试访问时http example
  • 为什么我无法正确打印第 47 个斐波那契数?

    我使用的是 64 位操作系统 因此我也无法正确打印第 46 个斐波那契数 该数小于 40 亿 include
  • 什么是反向路由?

    确实 它到处都被提及 但甚至没有维基百科页面准确命名 这只是 URL 重定向的一个奇特名称吗 它还有其他名称或定义吗 反向路由是生成指向路由的 URL 的过程 给定路由的符号引用 可以是路由 视图 控制器的名称或对控制器的引用 具体取决于框
  • 如何在Tcl中安装软件包?

    我正在尝试安装critlib在我的机器上 http equi4 com critlib http equi4 com critlib 这样我就可以在 Tcl 中动态创建 zip 文件 问题是我不知道如何安装 Tcl 软件包 您是否有放置文件
  • 在 IIS7 静态内容集成模式中使用角色进行 ASP.NET 身份验证

    我正在试验IIS7中静态内容的集成身份验证模式 我按照本文中的说明进行操作 https web archive org web 20210612113955 https aspnet 4guysfromrolla com articles
  • BeautifulSoup 选择具有特定类的某些元素中的所有 href

    我正在尝试从中删除图像网站 我尝试使用 Scrapy 使用 Docker 和 scrapy slenium Scrapy 似乎不适用于 windows10 home 所以我现在尝试使用 Selenium Beautifulsoup 我正在将