爬虫

1-4 使用Xpath解析豆瓣短评

2018-06-10  本文已影响4人  pnjoe

上一节,我们用的是BeautifulSoup去解析网页数据。
这一节,我们用新方法:用Xpath来解析网页数据。

xpath的解释

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。
XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一个通用的、介于XPointerXSL间的语法模型。但是XPath很快的被开发者采用来当作小型查询语言

为什么要用Xpath呢?我们来对比一下其它解析方法。



  • 获取文本内容用 text()

  • 获取注释用 comment()

  • 获取其它任何属性用@xx,如

    • @href
    • @src
    • @value
  • 想要获取某个标签下所有的文本(包括子标签下的文本),使用string
    比如:<p>123<a>来获取我啊</a></p>
    如果想要得到的文本为“123来获取我啊”,则需要使用string

  • starts-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')

输出


相关学习资料

爬虫入门到精通-网页的解析(xpath)
w3school XPath 教程

上一篇下一篇

猜你喜欢

热点阅读