使用Python进行抓取-XPath问题
我目前正在研究刮削,我一直在关注Youtube上的一个教程。本教程使用的是“Scrapy”,我已经设法从教程中预览的网站上刮取数据。然而,现在我已经尝试刮另一个网站没有成功 据我所知,问题在于我使用的Xpath。我尝试了几个Xpath测试/生成器网站,但没有成功 以下是XML代码:使用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
<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