小编给大家分享一下python-xpath如何获取html文档的部分内容,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
python有哪些常用库
python常用的库:1. requesuts; 2. scrapy; 3.枕头;4.扭曲;5. numpy; 6. matplotlib; 7. pygama; 8。ipyhton等。
有些时候我在们需要的用正则提取出html中某一个部分的文字内容,如图:
获取dd部分的html文档,我们要通过它的一个属性去确定他的位置才可以拿到他这个部分我们可以看到他的这个属性类=& # 39;行clearfix & # 39;,然后用xpath去获取到这部分:
name =, tree.xpath (“//dd (@class=& # 39; row clearfix & # 39;]“) 得到lxml import html import 请求 时间=url & # 39; http://navi.cnki.net/knavi/JournalDetail/GetArticleList?year=2018&问题=04,pykm=DZXU& pageIdx=0, pcode=CJFD& # 39; 时间=res requests.get (url) 时间=tree html.fromstring (res.text) 时间=name tree.xpath (“//dd (@class=& # 39; row clearfix & # 39;]“) 打印(名称)
如果直接打印他是不能够出来的,
我们需要对元素进行处理,用到name1=html.tostring(名称[0]),代码如下:
得到lxml import html import 请求 时间=url & # 39; http://navi.cnki.net/knavi/JournalDetail/GetArticleList?year=2018&问题=04,pykm=DZXU& pageIdx=0, pcode=CJFD& # 39; 时间=res requests.get (url) 时间=tree html.fromstring (res.text) 时间=name tree.xpath (“//dd (@class=& # 39; row clearfix & # 39;]“) 时间=name1 html.tostring(名称[0]) 打印(name1)
打印截图:
但是大家可以看到里面的等内容并不是中文,原因是我们使用tostring方法输出的是修正后的html代码,但是结果类是字节型,在python中字节类型是不可以进行编码的,需要转换成字符串,使用代码name1.decode(),此时我们将字节类型转换为str(字符串)类型。
那么此时我们关键是如何将# 26080美元;此类的符号转换成汉字! ! !那么首先要搞清楚这是什么编码?这类符号是html、XML等SGML类语言的转义序列。它们不是“编码”,也就是说我们不能使用utf - 8, gbk等编码进行处理,需要使用HTMLParse进行处理,完整代码如下:
得到lxml import html import 请求 得到html.parser import  HTMLParser #导入html解析库 时间=url & # 39; http://navi.cnki.net/knavi/JournalDetail/GetArticleList?year=2018&问题=04,pykm=DZXU& pageIdx=0, pcode=CJFD& # 39; 时间=res requests.get (url) 时间=tree html.fromstring (res.text) 时间=name tree.xpath (“//dd (@class=& # 39; row clearfix & # 39;]“) 时间=name1 html.tostring(名称[0]) 时间=name2 HTMLParser () .unescape (name1.decode ()) 印刷(name2)
此时运行结果如下:
以上是“python-xpath如何获取html文档的部分内容”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!