【问题标题】:get text value in xpath without including scripts在不包含脚本的情况下获取 xpath 中的文本值
【发布时间】:2020-03-27 11:39:06
【问题描述】:

您好,我是 Web 抓取和 X PATH 的新手,我在 ID main 的 scrapy(python 框架)中使用了以下 x 路径,如何修改 xpath 以不收集以下文本在“脚本”和“样式”中?

my_list=response.xpath('//*[@id="main"]//text()').extract()

在线搜索后,我发现我可以使用| 放置多个 x 路径(在我的情况下特定于每个标签)但这效率不高,因为文本可以在任何标签范围内,li,h2 ...

即我想提取 id=main 中的所有文本,但不是从脚本或样式标签中提取

【问题讨论】:

  • 如果您提供response 的相关部分,这将更容易推理。
  • @ldz 您可以尝试任何亚马逊产品或 eBay 产品

标签: xpath web-scraping


【解决方案1】:

使用name() 函数获取节点名称,使用not() 函数指定您不想包含哪些:

//*[@id='main']/descendant-or-self::*[not(name()='script') and not(name()='style')]//text()

descendant-or-self 确保直接在//*[@id='main'] 上的任何文本节点也被包含在内。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    相关资源
    最近更新 更多