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

posted on 2019-01-07 15:40  诸子流  阅读(6971)  评论(0编辑  收藏  举报