【问题标题】:Scrapy can not see data inside del HTML tagScrapy 看不到 del HTML 标签内的数据
【发布时间】:2021-03-18 01:03:13
【问题描述】:

我想从这个链接中获取原价和折扣价:

https://www2.hm.com/hu_hu/productpage.0903062001.html

span 和 del 类都有奇怪的类名,但我能够在 Scrapy shell 中找到折扣价:

response.css('span.price-value::text').get()

但是我对 del 标签内的原件没有运气:

<del class="BodyText-module--general__32l6J ProductPrice-module--priceValueOriginal__3U3Cz">6&nbsp;995 Ft</del>

我尝试了 xpath 和 css,但 Scrapy 找不到这个标签。

【问题讨论】:

  • 页面源中没有del这样的节点。您可以从script 节点中将var productArticleDetails 抓取并解析为JSON 以获得该值。你需要找到whitePrice

标签: python html css xpath scrapy


【解决方案1】:

原价和折扣价都作为 JSON 数据嵌入到页面源本身中

page_source_data = response.xpath('//div[@class= "tealiumProductviewtag productview parbase"]//text()')[0]
re.findall('product_original_price : \[(.*?)\],', page_source_data)
re.findall('product_list_price :  \["(.*?)\],', page_source_data)

这可以用来查找价格

【讨论】:

  • 运行正则表达式时收到错误消息:预期的字符串或类似字节的对象
  • 成功了,谢谢,问题是page_source_data中缺少.get()
猜你喜欢
  • 2020-01-20
  • 1970-01-01
  • 2019-09-04
  • 2013-01-02
  • 2016-02-03
  • 2015-12-31
  • 2021-03-03
  • 2019-04-20
  • 1970-01-01
相关资源
最近更新 更多