当前位置: 首页 > news >正文

解决Python用xpath爬取不到数据的一个思路

前言

最近在学习Python爬虫的知识,既然眼睛会了难免忍不住要实践一把。

不废话直接上主题

代码不复杂,简单的例子奉上:

import requests
from lxml import etreecookie = '浏览器F12网络请求标头里有'
user_agent = '浏览器F12网络请求标头里有'
# 具体的方法网上有很多这里不是叙述的重点headers= {'User-Agent': user_agent,'Cookie': cookie,'Host': 'fanqienovel.com','Connection': 'keep-alive'
}url = "https://****"# 使用get方法请求网页
resp = requests.get(url, headers=headers)# 将网页内容按utf-8规范解码为文本形式
content = resp.content.decode('utf-8')# 将文本内容创建为可解析元素
html = etree.HTML(content)# 获取1
title1 = html.xpath('//*[@id="app"]/div/div[2]/div/div[1]/div/div[2]/div[2]/div[1]/h1/text()')[0]# 获取2
title2 = html.xpath('//*[@id="app"]/div/div/div/div[1]/div/div[2]/div[2]/div[1]/h1/text()')[0]

“获取1”是页面打开后直接复制的XPath路径,但根据这个路径获取不到数据,见截图。

但content是有内容的,参阅网上的方案都未决解,但提供了思路。

是网站做了反爬虫处理,复制的XPath不准确导致的,想了个办法将content的内容复制到txt文档,然后修改为html的后缀用浏览器打开,在新的网页下重新复制XPath就得到了“获取2”的路径,可以发现1和2路径是有差异的。

问题到这就解决了。

http://www.lryc.cn/news/392439.html

相关文章:

  • C#面:如何把一个array复制到arrayist里
  • 解决前后端同一个端口跨域问题
  • 《C语言》认识数据类型和理解变量
  • 【ARM 常见汇编指令学习 7.1 -- LDRH 半字读取指令】
  • C++期末整理
  • 技术派Spring事件监听机制及原理
  • 秋招突击——设计模式补充——简单工厂模式和策略模式
  • SwiftUI中List的liststyle样式及使用详解添加、移动、删除、自定义滑动
  • PostgreSQL的系统视图pg_stats
  • UML2.0-系统架构师(二十四)
  • leetcode 152. 乘积最大子数组「贪心」「动态规划」
  • Android项目目录结构
  • 网络安全--计算机网络安全概述
  • 用requirements.txt配置环境
  • APP渗透-android12夜神模拟器+Burpsuite实现
  • 源码扭蛋机开发初探
  • Patch SCN使用说明---惜分飞
  • 【微服务架构的守护神】Eureka与服务熔断深度解析
  • 使用label-studio对OCR数据进行预标注
  • 嵌入式linux sqlite3读写demo
  • vue实现搜索文章关键字,滑到指定位置并且高亮
  • Stable Diffusion与AI艺术:探索人工智能的创造力
  • 华为HCIP Datacom H12-821 卷26
  • golang 获取系统的主机 CPU 内存 磁盘等信息
  • Infinitar链游新发展新机遇
  • Figma 被爆出它剽窃了苹果的设计后撤下了AI工具Make Designs
  • ERROR | Web server failed to start. Port 8080 was already in use.
  • C++ 类和对象 构造函数
  • 纯javascript实现图片批量压缩打包zip下载后端ThinkPHP多国语言切换国际站
  • 使用ChatGPT写论文,只需四步突破论文写作瓶颈!