使用
维持会话:
session = HTMLSession()
# 如果是网络文件此时即可直接请求
# session.get(“https://www.baidu.com”
# 如果是本地文件,需要以下代码# 挂载文件
session.mount(‘file://’, FileAdapter())
# Windows系统路径目录分隔符为反斜杠,但get需要正斜杠所以先进行一下替换
pwd = os.getcwd().replace(“\\”,”/”)
file_url = f’file:///{pwd}/ASN/index.html#%s’%(publickeyinfo_json)
# 测试发现使用相对路径读不到文件,需要使用绝对路径
r = session.get(file_url)#session对象能够帮我们跨请求保持某些参数
r.html.render() #进行js渲染
html = r.html#返回网页的迭代器
html_string = r.html.html#返回网页的内容
#返回的是所有标签外的内容,格式为str
html_hex_text = r.html.find(“.hex”,first=True).text#注意:first=True的意思是获取第一个元素,如果不加上就是获取所有的符合的元素
#返回的是所有标签外的内容,格式为list
hex_list = html_hex_text.split()
错误集锦
1. centos8 使用 html.render时出现缺少 libXss.so.1
centos /root/.local/share/pyppeteer/local-chromium/588429/chrome-linux/chrome: error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file
解决方法:
$ repoquery --nvr --whatprovides libXss.so.1
libXScrnSaver-1.2.2-6.1.el7
$ yum install libXScrnSaver
故障排除参考链接:
https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md
2. 不是在主进程中需使用异步