一、说明

解析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

版权声明:本文为lsdb原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lsdb/p/10233609.html