Python3+Requests-HTML+Requests-File解析本地html文件
一、说明
解析html文件我喜欢用xpath不喜欢用BeautifulSoup,Requests的作者出了Requests-HTML后一般都用Requests-HTML。
但是Requests-HTML一开始就是针对Requests从网络请求页面计的,并不能解析本地html文件。
想用Requests-HTML解析本地html文件,我们可借助Requests-File库实现。
二、实现解析本地html文件
2.1 安装Requests-File
pip install requests-file
2.2 实现代码
mount方法类似挂载文件系统,但我不清楚其本质是将哪里挂到哪里,测试时使用相对(当前工作目录)路径找不到文件使用绝对路径可以,所以就使用了绝对路径并未深究。
import os
from requests_html import HTMLSession
from requests_file import FileAdapter session = HTMLSession() # 如果是网络文件此时即可直接请求
# session.get("https://www.baidu.com") # 如果是本地文件,需要以下代码
# 挂载文件
session.mount('file://', FileAdapter())
# Windows系统路径目录分隔符为反斜杠,但get需要正斜杠所以先进行一下替换
pwd = os.getcwd().replace("\\","/")
# 测试发现使用相对路径读不到文件,需要使用绝对路径
html_obj = session.get(f'file:///{pwd}/want_to_parse.html')
参考:
https://github.com/dashea/requests-file#requests-file
Python3+Requests-HTML+Requests-File解析本地html文件的更多相关文章
- python解析本地HTML文件
Python使用爬虫技术时,每运行一次,本地都会访问一次主机.为避免完成程序前调试时多次访问主机增加主机负荷,我们可以在编写程序前将网页源代码存在本地,调试时访问本地文件即可.现在我来分享一下爬取资料 ...
- js 解析本地Excel文件!
通常,一般读取Excel都是由后台来处理,不过如果需求要前台来处理,也是可以的.. 1.需要用到js-xlsx,下载地址:js-xlsx 2.demo: <!DOCTYPE html>&l ...
- 开发一个简单的chrome插件-解析本地markdown文件
准备软件环境 1. 软件环境 首先,需要使用到的软件和工具环境如下: 一个最新的chrome浏览器 编辑器vscode 2. 使用的js库 代码高亮库:prismjs https://prismjs. ...
- 如何解析本地和线上XML文件获取相应的内容
一.使用Dom解析本地XML 1.本地XML文件为:test.xml <?xml version="1.0" encoding="UTF-8"?> ...
- python3 爬虫相关-requests和BeautifulSoup
前言 时间的关系,这篇文章只记录了相关库的使用,没有进行深入分析,各位看官请见谅(还是因为懒.....) requests使用 发送无参数的get请求 r = requests.get('http:/ ...
- Requests库主要方法解析以及Requests库入门需要掌握的框架
Requests库主要方法解析以及Requests库入门 1.requests.request(method,url,**kwargs) **kwargs:控制访问的参数,均为可选项 params:字 ...
- python3爬虫之requests库基本使用
官方文档链接(中文) https://2.python-requests.org/zh_CN/latest/ requests 基于 urllib3 ,python编写. 安装 pip insta ...
- # Python3微博爬虫[requests+pyquery+selenium+mongodb]
目录 Python3微博爬虫[requests+pyquery+selenium+mongodb] 主要技术 站点分析 程序流程图 编程实现 数据库选择 代理IP测试 模拟登录 获取用户详细信息 获取 ...
- 爬虫(2) - Requests(1) | Requests模块的深度解析
1.Requests 安装与请求方法 requests官方文档:https://docs.python-requests.org/zh_CN/latest/,官方文档不知道为什么挂了,访问不了.我找了 ...
随机推荐
- source insight 4.0.86.0 安装过程中出现的问题
1.sourceinsight_4.0.86.0-setup.exe 2.sourceinsight4.exe覆盖安装目录中的sourceinsight4.exe 3.导入lic文件 过程中360会将 ...
- Gatling实战(三)
无论是性能测试还是自动化测试,有一个很重要的点就是变量(参数化),因为真实环境是很少同时产生并发很高而且所有参数都一模一样的请求的,就算有这样的接口,开发肯定用缓存来挡了,这种一般不会是瓶颈,真正瓶颈 ...
- 误删除(重命名)libc.so.6的处理方法
LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6 ssh尚未断开的话可以直接这样操作,断开之后可以用l ...
- 【题解】Luogu P5313 僕たちはひとつの光([Ynoi2012]D2T2)
原题传送门 lovelive好评 比赛时只拿到了60pts,还是自己太菜了 这题的思想实际有点像Luogu P3674 小清新人渣的本愿与Luogu P5071 [Ynoi2015]此时此刻的光辉 这 ...
- python3之platform模块
platform模块可以获取操作系统的相关信息. >>> platform.system() #获取系统名称 'Linux' >>> platform.archit ...
- sqlmap学习笔记
SQLmap 神仙工具Orz.需要安装python2.7环境. 语法 -u 指定url --is-dba 查询是否为数据库管理员(database administrator) --dbs 查询数据库 ...
- 从零开始 CentOs 7 搭建论坛BBS Discuz_X3.2
由于公司项目需要一个互动平台,可以发起活动,发消息留言,讨论过后发现这竟然是一个论坛的功能. 于是就不打算耗费功夫开发相关功能,直接另外搭一套BBS算球... 一直觉得搭建BBS不是一件难事,目前有很 ...
- zabbix回顾
1.zabbix能收集哪些信息? 磁盘空间,磁盘IO,cpu负载,内存使用情况,开机时间,网卡的网络流量,进程数等 2.zabbix支持哪些通讯方式? agent:通过专用的代理程序进行监控,是mas ...
- HTML5 API分享
Facebook - http://developers.facebook.com/ 人人网开放平台 - http://dev.renren.com/ 51.com开放平台 - http://deve ...
- spring cloud 初体验
spring cloud分为注册端.客户端以及消费端 初体验的理解就是: 注册端就是将之前所有的应用在这边进行注册,然后给每个应用都生成自己的标识,这些应用就是来自于客户端,消费端则通过调用注册端(有 ...