Python爬虫中xpath定位

img

img


定位时报错,显示是开头和结尾不一致,之后查了下说是文件的问题或者是结束标签的问题,但是在title后加斜杠并没有什么用,求解

这个错误表明在解析HTML文件时,发现了一个开标签和闭标签不匹配的问题,再mate后面加【/】试试,

<meta charset="UTF-8" />
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/692921
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Python爬虫之xpath语法及案例使用
  • 除此之外, 这篇博客: python爬虫之xpath格式转换与去除多余标签、解决部分重定向问题的方法中的 1. 解决链接获取问题 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    由于是整个网站(基于该域名下的所有子网站)需要获取,所以采用正则的方式解决,一些具体的需求加判断就行了。该网站点开后 需要提交信息,但是不需要注册 ,那么一般就会有个 重定向链接 或在 js 代码里,在 源码 中找到就行了,可看下图,因此所有的目的就只有一个——找到最终含有 pdf 的重定向链接。

    sub_text = re.findall('<a href="(https://cta-redirect.*?)" target="_blank">', sub_html, re.S|re.M)
    
    # 获取结果
    # ['https://cta-redirect.hubspot.com/cta/redirect/3354902/4c3980eb-c827-4c5e-9b2c-83e1063314ba]
    
    response = requests.get(sub_text[0], headers=headers, allow_redirects=True).text
    
  • 您还可以看一下 李飞老师的Python数据分析与爬虫课程中的 Python爬虫:XPath常见用法小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    在使用xpath定位时出现开头和结尾不一致的错误,可能是由于文件或结束标签的问题,可以根据报错信息和代码逐一检查定位的标签是否匹配。已经在title后添加斜杠,可以尝试用正则表达式进行匹配,找到对应的标签并修正,代码示例如下:

    import requests from lxml import etree import re

    url = "https://www.example.com" response = requests.get(url) html = response.content.decode()

    使用正则表达式匹配,找到错误标签

    pattern = r'

    (.<em>?)</title' title = re.findall(pattern, html) if title: pattern = re.escape(title[0]) + r'(.</em>?)(?<=\<\/title)' html = re.sub(pattern, '', html)</p> <h1 id="xpath">使用XPath定位</h1> <p>selector = etree.HTML(html) result = selector.xpath('your xpath')</p></li></ul><br><a>如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^