代码
import requests
from lxml import etree
URL = ‘http://www.chinastor.com/si/hub/list_239_2.html’
res = requests.get(URL)
res.encoding = ‘gb2312’
html = res.content.decode(‘gb2312’)
e_html = etree.HTML(html)
title = e_html.xpath(’//table[@class=“hovertable”]/tr[@onmouseover]//a[@href]/text()’)
print(title)
代码解释
1、from lxml import etree
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。
导入命令:from lxml import etree
2、res.encoding = 'gb2312’和res.content.decode(‘gb2312’)
encoding:编码,decode:解码;
res.encoding直接读取源文件字节流,后方指定对该字节流的编码方案,当我们的文件编码是UTF-8时,我们encoding使用了GB2312那就会造成对字节流的编码错误,此时要替换过来,再进行指定编码;
.content.decode就是读取源文件字节流,随后将该字节流编码为Unicode编码,方便再进行更加精确的解码;
3、etree.HTML
调用HTML类对HTML文本进行初始化,成功构造XPath解析对象,同时可以自动修正HMTL文本
4、.xpath(’//table[@class=“hovertable”]/tr[@onmouseover]//a[@href]/text()’)
XPath 是一门在 XML 文档中查找信息的语言

本文介绍了Python小白如何通过requests和lxml库获取并解析网页数据。利用XPath选择器提取特定元素,讲解了编码解码、HTML解析及XPath路径表达式等基础知识。
最低0.47元/天 解锁文章
5万+

被折叠的 条评论
为什么被折叠?



