请帮我解决问题。我从网站上抓取价格。示例页面。 Price 有一个 XPath
/html/body/div[8]/div/div[2]/div[1]/div[2]/div/div[2]/div[2]/div[2]/div[2]/div[1]/div/span[2]/span[2]
但在询问解析器后我得到一个空值。类似的路径适用于其他站点。我安装了 XPath 帮助器插件,它产生以下结果
/html[@class='bx-core bx-win bx-no-touch bx-no-retina bx-chrome desktop portrait']/body[@class='auth_no widget-on b24-on']/div[@class='main_wrap']/div[@class='shadow_wraper']/div[@class='content_wrap']/div[@class='content_right_wrap goods']/div[@id='bx_117848907_309101']/div/div[@class='catalog_item_wrap']/div[@class='catalog_item sw']/div[@class='catalog_item_right']/div[@class='col-lg-9 col-sx-9 col_mob-full']/div[@class='catalog_price_wrap row sw']/div[@class='catalog_price_desc_wrap col-lg-12 col-xs-12']/span[@class='price']/span[@id='bx_117848907_309101_price']
如果你只是复制元素,它看起来像这样:
<span class="price_num xh-highlight" id="bx_117848907_309101_price" data-entity="final-price" data-price="2262" data-currency="RUB" style="font-size: 18px;">2 262 Р</span>
我做错了什么?我应该给解析器提供哪条路径?
PS我很抱歉,我不是程序员,但需要找到解决这个问题的方法。我使用batchurlscraper
您可以使用此价格定位器:
//div[@data-entity="price-block"]
将其插入 xpath helper 中,您将看到它正在查找的位置(现在它正在查看带有价格的整个块,以及被划掉的价格)。定位器仅显示价格://div[@data-entity="price-block"]//span[@class="price_num"]
ps 尝试编写没有长梯子的定位器,例如:
/html/body/div[8]/div/div[2]/div[1]/div[2]/div/div[2]/div[2]/div[2]/div[2]/div[1]/div/span[2]/span[2]
如果他们从路径中添加/删除 1 个 div,它将变得无关紧要我建议您阅读这篇文章以了解如何编写普通定位器