上一节,我们用的是BeautifulSoup去解析网页数据。
这一节,我们用新方法:用Xpath来解析网页数据。xpath的解释
XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。
XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是XPath很快的被开发者采用来当作小型查询语言。为什么要用Xpath呢?我们来对比一下其它解析方法。
当网页数据结构较清晰,条理分明,也可以自己手写
获取文本内容用 text()
获取注释用 comment()
获取其它任何属性用@xx,如
- @href
- @src
- @value
想要获取某个标签下所有的文本(包括子标签下的文本),使用string
比如:<p>123<a>来获取我啊</a></p>
如果想要得到的文本为“123来获取我啊”,则需要使用stringstarts-with 匹配字符串前面相等
contains 匹配任何位置相等
复制过来的代码,粘贴上
代码
import requests
from lxml import etree
import pandas
url = "https://book.douban.com/subject/1084336/comments/"
r = requests.get(url).text
s = etree.HTML(r)
count = 0
comments = []
while (count < 20):
count = count + 1
temp = s.xpath('//*[@id="comments"]/ul/li['+str(count)+']/div[2]/p/text()') #从浏览器复制得来的
comments.append(temp)
df = pandas.DataFrame(comments)
df.to_csv('短评.csv',encoding = 'utf-8-sig')
输出
相关学习资料
网友评论