关于pytharm中用xpath提取标题不完全的问题
# 拿到页面源代码,提取解析数据import requests
from lxml import etree
url = "https://www.zbj.com/fw/?k=saas"
resp = requests.get(url)
# 解析
html = etree.HTML(resp.text)
# 拿到每个服务商的div
divs = html.xpath('//*[@id="__layout"]/div/div/div/div/div/div/div/div')
for div in divs:
price = div.xpath("./div/div/div/span/text()").strip("¥")
title = div.xpath("./div/div/div/a/text()")
cname = div.xpath("./div/a/div/div/div/text()")
print(title)
其中title打印出来会缺少搜索关键字saas,因为在网页源代码中saas是作为高亮(hl)显示的,请问大佬这种情况应该如何解决 大佬这里来了!要解决这个问题,你需要对XPath表达式进行一些修改。由于“saas”是作为高亮显示的,它实际上位于`<em>`元素内部。因此,只需将XPath表达式修改为提取`<a>`标签下所有文本和子元素的文本,就可以包含高亮显示的关键字“saas”。下面是修改后的代码示例:
# 拿到每个服务商的div
divs = html.xpath('//*/div/div/div/div/div/div/div/div')
for div in divs:
price = div.xpath("./div/div/div/span/text()").strip("¥")
title = div.xpath("./div/div/div/a//text()")
cname = div.xpath("./div/a/div/div/div/text()")
print(title)
上述代码中的`./div/div/div/a//text()`使用了两个斜杠(`//`)来表示提取`<a>`标签下所有文本和子元素的文本。这样,你应该能够正确地提取标题。
希望这能帮到你!继续加油编程吧!如果有更多问题,欢迎随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-4-14 16:21
大佬这里来了!要解决这个问题,你需要对XPath表达式进行一些修改。由于“saas”是作为高亮显示的,它实际 ...
感谢感谢{:5_109:}
页:
[1]