Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python进行抓取-XPath问题_Python_Xpath_Web Scraping_Scrapy - Fatal编程技术网

使用Python进行抓取-XPath问题

使用Python进行抓取-XPath问题,python,xpath,web-scraping,scrapy,Python,Xpath,Web Scraping,Scrapy,我目前正在研究刮削,我一直在关注Youtube上的一个教程。本教程使用的是“Scrapy”,我已经设法从教程中预览的网站上刮取数据。然而,现在我已经尝试刮另一个网站没有成功 据我所知,问题在于我使用的Xpath。我尝试了几个Xpath测试/生成器网站,但没有成功 以下是XML代码: <div class="price" currentmouseover="94"> <del currentmouseover="96"> <span class="woocommerc

我目前正在研究刮削,我一直在关注Youtube上的一个教程。本教程使用的是“Scrapy”,我已经设法从教程中预览的网站上刮取数据。然而,现在我已经尝试刮另一个网站没有成功

据我所知,问题在于我使用的Xpath。我尝试了几个Xpath测试/生成器网站,但没有成功

以下是XML代码:

<div class="price" currentmouseover="94">
<del currentmouseover="96">
<span class="woocommerce-Price-amount amount" currentmouseover="90"><span class="woocommerce-Price-currencySymbol">€</span>3.60</span>
</del>
<ins><span class="woocommerce-Price-amount amount" currentmouseover="123"><span class="woocommerce-Price-currencySymbol" currentmouseover="92">€</span>3.09</span></ins></div>
我也尝试过使用//span[@woocmerce-Price-amount']

我希望我的输出是“3.09”,相反,当我将其导出到JSON文件时,我得到的是null。有人能给我指出正确的方向吗

提前谢谢

更新1: 我用杰克·弗利廷的答案解决了这个问题。由于我在理解Xpath时遇到问题,我一直在尝试不同的网站,以便进一步了解Xpath的工作原理。不幸的是,我陷入了另一个例子

<div class="add-product"><strong><small>€3.11</small> €3.09</strong></div>

我的期望是输出3.09,但是,我同时输出两个数字。我尝试过使用最小值函数,但XPath1.0不支持它。ie:因为我想输出项目的实际(折扣)值,所以请尝试这个xpath表达式,看看它是否有效:

//div[@class='price']/ins/span

请注意,
price
是小写的,就像在html中一样。

我已经将第一个xpath更改为
“//div[@class='product-wrap']”
并且我已经用您的建议更新了第二部分。它工作得很好。同时,我还添加了产品名称。我目前正在尝试在同一行中生成产品名称和价格。如果明天之前我还没有完成,我会更新我的帖子。非常感谢,杰克。
 l.add_xpath('price', ".//div[@class='add-product']/strong[1]")
//div[@class='price']/ins/span