BeautifulSoup:从锚标记中提取文本

2024-03-30

我想提取:

  • 来自以下 src 的文本image tag and
  • 锚标记的文本位于div类数据

我成功地提取了 img src,但在从锚标记中提取文本时遇到了问题。

<a class="title" href="http://www.amazon.com/Nikon-COOLPIX-Digital-Camera-NIKKOR/dp/B0073HSK0K/ref=sr_1_1?s=electronics&amp;ie=UTF8&amp;qid=1343628292&amp;sr=1-1&amp;keywords=digital+camera">Nikon COOLPIX L26 16.1 MP Digital Camera with 5x Zoom NIKKOR Glass Lens and 3-inch LCD (Red)</a> 

这是全文的链接.

这是我的代码:

for div in soup.findAll('div', attrs={'class':'image'}):
    print "\n"
    for data in div.findNextSibling('div', attrs={'class':'data'}):
        for a in data.findAll('a', attrs={'class':'title'}):
            print a.text
    for img in div.findAll('img'):
        print img['src']

我想做的是提取图像 src (链接)和其中的标题div class=data,例如:

 <a class="title" href="http://www.amazon.com/Nikon-COOLPIX-Digital-Camera-NIKKOR/dp/B0073HSK0K/ref=sr_1_1?s=electronics&amp;ie=UTF8&amp;qid=1343628292&amp;sr=1-1&amp;keywords=digital+camera">Nikon COOLPIX L26 16.1 MP Digital Camera with 5x Zoom NIKKOR Glass Lens and 3-inch LCD (Red)</a> 

应该提取:

Nikon COOLPIX L26 16.1 MP Digital Camera with 5x Zoom NIKKOR Glass Lens and 3-inch LCD (Red)


这将有助于:

from bs4 import BeautifulSoup

data = '''<div class="image">
        <a href="http://www.example.com/eg1">Content1<img  
        src="http://image.example.com/img1.jpg" /></a>
        </div>
        <div class="image">
        <a href="http://www.example.com/eg2">Content2<img  
        src="http://image.example.com/img2.jpg" /> </a>
        </div>'''

soup = BeautifulSoup(data)

for div in soup.findAll('div', attrs={'class':'image'}):
    print(div.find('a')['href'])
    print(div.find('a').contents[0])
    print(div.find('img')['src'])

如果您正在研究亚马逊产品,那么您应该使用官方 API。至少有一个Python包 http://pypi.python.org/pypi/python-amazon-product-api/这将缓解您的抓取问题并使您的活动符合使用条款。

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

BeautifulSoup:从锚标记中提取文本 的相关文章

随机推荐

  • 在 Python 中转储到 JSON 时,字符串中的 Unicode 值会被转义 [重复]

    这个问题在这里已经有答案了 例如 gt gt gt print json dumps r e r u016f u017ee 当然 在实际的程序中它不仅仅是一个字符串 在文件中也是这样出现的 当使用json dump 我也希望它简单地输出 r
  • 在Scheme中插入二叉树

    我想知道如何将列表中的元素插入二叉搜索树 我想知道为什么下面的代码不能按我的预期工作 输出是 4 1 5 13 6 我的下一个问题是对列表中的元素进行排序 但现在我只想插入它们 我的输出对于我所说的问题是否正确 我的代码如下 define
  • C 指针的一元加法如何工作?

    我知道一元运算符 对数字加一 然而 我发现如果我对 int 指针执行此操作 它会增加 4 我系统上 int 的大小 为什么要这样做 例如 以下代码 int main void int a malloc 5 sizeof int a 0 42
  • 使用适用于 Android 的 Jack 编译器获取未知属性“类路径”

    我正在尝试用下一个编译我的项目杰克编译器 https source android com source jack html 我刚刚将 Android Studio 更新到 2 2 Beta 并将我的 gradle 插件更新到 2 14 1
  • 从 Javascript Transformers 访问 Mirth Connect REST API (Mirth 3.5.1)

    我正在努力从 mirth connect 通道的源 javascript 转换器访问 mirth connect Rest api 端点 我的目标是能够使用转换器中的 javascript 代码导出和导入通道组 我知道不可能使用 XHR 因
  • 使用元 http-equiv 标记进行重定向时,避免将页面添加到浏览器历史记录中

    我有一个网页 它使用以下命令重定向到所需的目标网址 我想避免第一页出现在浏览器历史记录中 特别是 在手机 Android iOS 等 中 我希望后退按钮可以跳过重定向页面 您有两个选择 要么使用真正的 HTTP 重定向 要么使用 JavaS
  • 制作一个 Angular *ngFor 绘制两列不同的数据[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在尝试创建一个 ngFor 指令将数据放入两列 而不是像往常一样只放入一列 我什至按照我在那里看到的例子进行操作 但根本不起作
  • 发送 AT 命令到 Android 手机

    我想向 Android 手机发送 AT 命令 我知道SDK不支持这个 但有两种解决方案 更改内核代码并发布你的新Android 看来很难 环回开启USB 我认为蓝牙是一样的 关于第二种解决方案 当您将手机连接到PC时USB电缆 你会看到一个
  • 如何在 TWIG 中使用转储?

    我简单地添加模板 index html twig dump product 我有错误 The function dump does not exist in AcmeStoreBundle Default index html twig a
  • Instagram Oauth2 隐式身份验证重定向到页面不可用,如果您输入错误的密码

    我正在使用 oauth2 Instagram 隐式流程在 Instagram 中登录 我使用的基本网址是这样的 这个网址向我显示了 Instagram 登录页面 我输入了用户和密码 如果正确 API 会将我重定向到redirect uri
  • 如何使用pid获取进程状态?

    如果我知道一个进程的 pid 我如何使用 Python 判断该进程是否是僵尸进程 你可以使用status特征来自psutil https github com giampaolo psutil import psutil p psutil
  • 将 python (pandas) Dataframe 写入 SQL 数据库错误

    我正在尝试将 python 数据框放入 MS SQL DB 但收到以下错误 FUNCTION def put to server df df is a pandas data frame server KORNBSVM04 MSSQLSER
  • MathJax `\\` 换行符不渲染。简单地显示`\\`

    我使用 MathJax CDN 当我将其放入我的网页时 Say P k n is the probability of By definition 所有数学都正确呈现 但是 显示为 而不是换行符 并且没有换行符 它只是在同一条线上继续 所以
  • 使用node.js pm2在虚拟环境中运行python脚本

    我想参考一下这个问题 https stackoverflow com questions 32127834 how to run run python script like pm2 for nodejs因为我确信有人会将其标记为重复项 我
  • extjs 中的级联组合框

    我想在 extjs 中做级联组合框 我必须组合框 课程组合框 xtype combobox emptyText Course id combo course displayField name valueField id store cou
  • 该项目不是基于 Gradle 的项目。如何从根目录打开项目?

    我被这个问题困扰有一段时间了 绞尽脑汁 我用谷歌搜索了这个答案here https stackoverflow com questions 23752077 no gradle file shown while importing proj
  • java中2组最接近的和

    我在解决这个问题时遇到一些问题 给定一个数组ints 将输入分为 2 组 使其总和尽可能接近 2 组的长度必须相等 或者如果输入是奇数长度 则一组可以比另一组多 1 然后先打印较低的总和 然后打印较高的总和 前任 输入 gt 4 6 17
  • 从序列化的 post_meta (PHP) 中的数组中过滤一些值

    我在 WordPress 中设置了自定义帖子类型 艺术家 我有一个插件可以序列化来自艺术家的元信息 并且我需要按通道过滤此信息 channel s 6 trance 它也在序列化元 show data 中 a 1 s 32 57fba1b1
  • 在c#中比较RGB颜色

    我正在尝试找到一种方法来比较两种颜色以找出它们的相似程度 我似乎找不到有关该主题的任何资源 因此我希望在这里得到一些指示 理想情况下 我希望得到一个分数来表明它们有多相似 例如 0 到 100 其中 100 相等 0 完全不同 Thanks
  • BeautifulSoup:从锚标记中提取文本

    我想提取 来自以下 src 的文本image tag and 锚标记的文本位于div类数据 我成功地提取了 img src 但在从锚标记中提取文本时遇到了问题 a class title href http www amazon com N