Python Scrapy并不总是从网站下载数据

2024-01-23

Scrapy 用于解析 html 页面。我的问题是为什么有时scrapy返回我想要的响应,但有时不返回响应。是我的错吗?这是我的解析函数:

class AmazonSpider(BaseSpider):
    name = "amazon"
    allowed_domains = ["amazon.org"]
    start_urls = [
       "http://www.amazon.com/s?rh=n%3A283155%2Cp_n_feature_browse-bin%3A2656020011"
   ]

def parse(self, response):
            sel = Selector(response)
            sites = sel.xpath('//div[contains(@class, "result")]')
            items = []
            titles = {'titles': sites[0].xpath('//a[@class="title"]/text()').extract()}
            for title in titles['titles']:
                item = AmazonScrapyItem()
                item['title'] = title
                items.append(item)
            return items

我相信您只是没有使用最合适的 XPath 表达式。

亚马逊的 HTML 有点混乱,不太统一,因此不太容易解析。但经过一些实验,我可以使用以下命令提取几个搜索结果的所有 12 个标题parse功能:

def parse(self, response):
    sel = Selector(response)
    p = sel.xpath('//div[@class="data"]/h3/a')
    titles = p.xpath('span/text()').extract() + p.xpath('text()').extract()
    items = []
    for title in titles:
        item = AmazonScrapyItem()
        item['title'] = title
        items.append(item)
    return items

如果您关心结果的实际顺序,上面的代码可能不合适,但我相信情况并非如此。

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

Python Scrapy并不总是从网站下载数据 的相关文章

随机推荐

  • 如何使用 Visual Studio 2010 从源代码构建 MFC 库

    Visual Studio 历史上始终包含 MFC 库作为源 因此您可以使用提供的 makefile 自行构建它 但在 Visual Studio 2010 中没有 MFC 的 makefile 那么 如何重建它呢 MS 上有文档暗示 ma
  • 使用 jquery 添加和删除 div 的样式属性

    我继承了我正在从事的一个项目 并且正在更新一些 jquery 动画 很少使用 jquery 练习 我有一个 div 需要添加和删除样式属性 这是 div div 在动画中的某个时刻 我需要为其添加一种样式 div 我四处搜寻并找到了 rem
  • 使用 JPL 查询 Prolog 变量

    我想通过JPL进行查询以在java中使用Prolog 我阅读了文档 http www swi prolog org packages jpl java api getting started html prolog 谓词如下 child o
  • 如何避免标题后立即分页

    我有一个 HTML 4 01 CSS 2 1 文档 其中包含一个 H3 标题 后跟一个短 一行 段落块 然后是一个包含多个项目的无序列表 h3 Heading h3 p Some things p ul li Thing one li li
  • PowerShell 和 MS Access 数据库

    我们想使用 PowerShell 创建 AD 用户 使用 CSV 这不是问题 使用脚本就很容易 下一级我们希望使用 PowerShell 和 MS Access 数据库创建 AD 用户 现在我们遇到以下问题 我们可以读取 Access 数据
  • Android 异常 - 来源未知(可能是小部件)

    我有以下 Android 异常 这是由 Bugsense 报告的 我无法找到它来自哪里 因为没有引用我的应用程序的任何类 java lang IndexOutOfBoundsException 无效索引 0 大小为 0 在java util
  • google-maps-sdk-ios - iOS 版 Google 地图 1.4.3 的 arm 7/iphone 5 问题

    我在让我的应用程序引用 iOS 版 Google 地图 1 4 3 sdk 时遇到问题 arm7 和 7s 似乎存在问题 尽管它在模拟器上运行良好 但它拒绝安装到设备 iphone 5 上 我相信我已经遵循了 google 文档中的 API
  • 触发器在两个信号的边沿触发

    我需要一个对两个不同信号的边缘做出反应的触发器 像这样的东西 if rising edge sig1 then bit lt 0 elsif rising edge sig2 then bit lt 1 end if 这样的触发器是否存在或
  • 如何在 SQLAlchemy 中使用子查询来生成移动平均线?

    我的问题是我想检索测量值列表以及这些测量值的移动平均值 我可以使用以下 SQL 语句 postgresql 间隔语法 来做到这一点 SELECT time value SELECT AVG t2 value FROM measurement
  • 如何验证 update_all 是否确实在 Rails 中更新

    鉴于此代码 def create upgrades User update all role upgraded id gt params upgrade redirect to admin upgrades path notice gt S
  • 如何使用 Func 配置依赖注入容器?

    BusinessAction 用于表示用户可以执行的操作 每个操作都与特定实体相关 因此 例如 如果该实体是 Order 则业务操作可以是 CancelOrder IssueRefund 等 public abstract class Bu
  • 如何正确使用 LiveData 和 RecyclerView

    我有一个从服务器加载列表的项目 这些数据最终将存储到数据库中 但目前存储在内存中的 MutableLiveData 中 RecyclerView 的适配器正在监视数据并显示它 到目前为止 一切都按预期工作 使用 FAB 用户可以发布一个新条
  • 加密 SharedPreferences 中的数据

    我目前正在开发一个用于 oAuth 1 和 2 访问 Web 服务的框架 我的问题是 如何以安全的方式存储敏感数据 例如 oAuth 访问密钥 这个密钥的问题是 像 Twitter 这样的一些平台使用永久密钥 如果有人能够访问这个密钥 他就
  • 使用 sf dplyr 计算 R 中组的点距离

    我有 2 个数据框 如果第一帧相对于第二个数据帧中的某个点 我想计算所有 POINT 几何图形之间的距离 这个问题的主要特点是我有一个grouping第一个数据帧中的变量 我想根据此分组指示器选择相应的点来测量 在第二个数据帧中 的距离 我
  • DotNetZip 从其他 zip 的子集创建 zip

    我有一个很大的 zip 文件 需要将其拆分为多个 zip 文件 在我现在创建的方法中 我有一个 List 对象 这是我得到的代码 All files have the same basefilename string basefilenam
  • 使用 d3.js 的 Pack Layout 节点中的 NaN x 和 y 值

    我正在尝试使用 d3 js 制作圆形包装图 问题是节点的 x 和 y 属性具有 NaN 值 因此所有圆都有变换 翻译 NaN NaN 杰森数据 var data name flare children name analytics chil
  • 如何在 xampp 服务器上运行 Angular 应用程序?

    我正在使用 Angular 2 和 php 进行工作 在我使用 Angular 2 开始 PHP 之前 我已经在服务器 localhost 3000 上使用 node js 完成了 Angular 2 现在使用 PHP 我如何使用 xamp
  • 在ConfigureServices方法中访问IHostingEnvironment

    我需要办理登机手续ConfigureServices方法当前托管环境名称是否为 开发 所以使用IHostingEnvironment IsDevelopment 方法对我来说可能没问题 但与配置方法不同 我没有IHostingEnviron
  • UPDATE 的 mysqli_affected_rows 有时在全行匹配时返回 0

    假设我有 MySQL 查询来更新一行 res mysqli query link UPDATE table SET val 1 WHERE id 5 if res if mysqli affected rows link gt 0 echo
  • Python Scrapy并不总是从网站下载数据

    Scrapy 用于解析 html 页面 我的问题是为什么有时scrapy返回我想要的响应 但有时不返回响应 是我的错吗 这是我的解析函数 class AmazonSpider BaseSpider name amazon allowed d