【问题标题】:Selecting with Xpath in Scrapy在 Scrapy 中使用 Xpath 进行选择
【发布时间】:2015-12-29 11:44:14
【问题描述】:

我正在使用 Scapy 从网站上抓取一些数据,我需要帮助使用 Xpath 从以下内容中选择“data”。

<span class="result_item"><span class="text3"><span class="header_text3">**data**</span><br />
  <a href="http://website.htm">**data**</a><br />
     **data**</span> <span class="phone_button_out"><span class="phone_button" style="margin-top: 0"
    onclick="pageTracker._trackEvent('USDSearch','Call Now!F');phone_win.open('name','**data**',27101650,0)">
  Call Now!<br />
</span></span>

我可以使用哪些语句来选择必要的数据?我希望这不是一个愚蠢的问题。如果是,请指出正确的方向。

【问题讨论】:

  • &lt;span class='phone-button-out'&gt;&lt;span class='result_item'&gt; 在提供的 html 中关闭。请更正发布的html。
  • @parishodak 这是复制和粘贴的。如果我改变它,它就不会是我试图抓取的代码。

标签: xpath web-scraping scrapy


【解决方案1】:

在发布的 html 中有多个数据元素可以获取。假设 &lt;span class="result_item"&gt; 是项目的父项,您可以尝试以下操作:

获取标题:

//span[@class='result_item']/span[@class='header_text3']/text()

获取锚链接数据:

//span[@class='result_item']/a/text()

此外,为了帮助使用 xpath,请在 Firefox 中安装 Firebug 插件,然后在 Firebug 上安装 FirePath 插件。指向元素将为您提供自动生成的 xpath(适合初学者。有时需要 xpath 调整)

【讨论】:

  • 我是全新的。为什么“response.xpath('//span[@class='result_item']/span[@class='header_text3']/text()')”在shell中给我一个无效的语法错误?
  • 请检查这是否有效response.selector.xpath('//span[@class='result_item']/span[@class='header_text3']/text()‌​')" ').extract() - scrapy 的参考文档doc.scrapy.org/en/latest/topics/selectors.html
  • 不幸的是,它没有。
  • @ArthurWalker 也许你会得到错误,因为在single quotation marks ' ' 中你必须使用double quotation marks " " - '//span[@class="result_item"]/span[@class="header_text3"]/text()‌​'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
  • 2016-03-12
  • 1970-01-01
相关资源
最近更新 更多