使用xpath方法爬取丁香网的评论消息

xpath简介

XPath,全称XML Path Language,即XML路径语言,它是一门在XML文档中查找信息的语言。它最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索。

所以在做爬虫时,我们完全可以使用XPath来做相应的信息抽取。
XPath的选择功能十分强大,它提供了非常简洁明了的路径选择表达式。另外,它还提供了超过100个内建函数,用于字符串、数值、时间的匹配以及节点、序列的处理等。几乎所有我们想要定位的节点,都可以用XPath来选择。

XPath常用规则

下图列举了XPath的几个常用规则。

在这里插入图片描述这里列出了XPath的常用匹配规则,示例如下:

 	
//title[@class='env']

这就是一个XPath规则,它代表选择所有名称为title,同时属性class的值为env的节点。

后面会通过Python的lxml库,利用XPath进行丁香网论坛评论的爬取。

爬取论坛丁香网的源码

#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "bravexz"
# Date: 19-3-4

import requests
from lxml import etree


def get_html(url):
    headers ={
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36'
    }

    res = requests.get(url,headers = headers)
    res.encoding = res.apparent_encoding
    return res.text
    # print(res.text)



def parse_html(res):
    data =[]
    new_data =[]
    html = etree.HTML(res)
    result_name = html.xpath('//div[@class="auth"]/a/text()')
    result_data = html.xpath('//td[@class="postbody"]/text()')
    for i in range(0,int(len(result_name))):
        data.append(result_name[i]+"++++++++"+result_data[i])

    for i in data:
        new =i.replace("\n","").replace("\t","").replace(" ","")
        new_data.append(new)
        print(new_data)

参考:https://cuiqingcai.com/5545.html

猜你喜欢

转载自blog.csdn.net/mengxj168/article/details/88125735
今日推荐