Python爬虫基础——XPath语法的学习与lxml模块的使用

XPath与正则都是用于数据的提取,二者的区别是:

  • 正则:功能相对强大,写起来相对复杂;
  • XPath:语法简单,可以满足绝大部分的需求;

所以,如果你可以根据自己的需要进行选择。

一、首先,我们需要为Google浏览器配置XPath插件:

请自行学习,效果如下:

二、XPath的语法:


注意:
XPath的索引从1开始。

三、XPath的案例:

  • 一级分类:
    //h3[@class="classify_c_h3"]/a/text()
  • 二级分类:
    //div[@class="classify_list"]/span/a/text()
  • 模糊查询:
    //div[contains(@class,"classify_list")]/span/a/text()

四、lxml模块的使用

import lxml.etree as le

with open('edu.html', 'r', encoding='utf-8') as f:
    html = f.read()
    # print(html)
    # 转换为XPath对象
    html_x = le.HTML(html)
    # print(html_x)
    # 匹配一二级分类的父标签
    div_x_s = html_x.xpath('//div[@class="classify_cList"]')  # 直接从HTML中取则不用加.
    data_s = []
    for div_x in div_x_s:
        # 一级分类
        category1 = div_x.xpath('./h3/a/text()')[0]  # 记得加.
        # 二级分类
        category2_s = div_x.xpath('./div/span/a/text()')  # 表示从当前节点进行筛选
        data_s.append(
            dict(
                category1=category1,
                category2_s=category2_s
            )
        )
    print(data_s)
    for data in data_s:
        print(data.get('category1'))
        for category2 in data.get('category2_s'):
            print('   ', category2)

原文地址:https://www.cnblogs.com/WoLykos/p/12072119.html

时间: 2024-08-02 18:46:01

Python爬虫基础——XPath语法的学习与lxml模块的使用的相关文章

Python爬虫:Xpath语法笔记

一.选取节点 常用的路劲表达式: 表达式 描述 实例   nodename 选取nodename节点的所有子节点 xpath(‘//div’) 选取了div节点的所有子节点 / 从根节点选取 xpath(‘/div’) 从根节点上选取div节点 // 选取所有的当前节点,不考虑他们的位置 xpath(‘//div’) 选取所有的div节点 . 选取当前节点 xpath(‘./div’) 选取当前节点下的div节点 .. 选取当前节点的父节点 xpath(‘..’) 回到上一个节点 @ 选取属性

python爬虫-基础入门-爬取整个网站《3》

python爬虫-基础入门-爬取整个网站<3> 描述: 前两章粗略的讲述了python2.python3爬取整个网站,这章节简单的记录一下python2.python3的区别 python2.x 使用类库: >> urllib 库 >> urllib2 库 python3.x 使用的类库: >> urllib 库 变化: -> 在python2.x中使用import urllib2 ----- 对应的,在python3.x 中会使用import url

分享《Python数据分析基础教程:NumPy学习指南(第2版)》高清中文PDF+英文PDF+源代码

下载:https://pan.baidu.com/s/1YSD97Gd3gmmPmNkvuG0eew更多资料分享:http://blog.51cto.com/3215120 <Python数据分析基础教程:NumPy学习指南(第2版)>高清中文PDF+高清英文PDF+源代码 高清中文版PDF,249页,带目录和书签,文字能够复制粘贴:高清英文版PDF,310页,带目录和书签,文字能够复制粘贴:中英文两版可以对比学习.配套源代码:经典书籍,讲解详细:其中高清中文版如图: 原文地址:http://

python爬虫 | 一条高效的学习路径

数据是创造和决策的原材料,高质量的数据都价值不菲.而利用爬虫,我们可以获取大量的价值数据,经分析可以发挥巨大的价值,比如: 豆瓣.知乎:爬取优质答案,筛选出各话题下热门内容,探索用户的舆论导向. 淘宝.京东:抓取商品.评论及销量数据,对各种商品及用户的消费场景进行分析. 搜房.链家:抓取房产买卖及租售信息,分析房价变化趋势.做不同区域的房价分析. 拉勾.智联:爬取各类职位信息,分析各行业人才需求情况及薪资水平. 雪球网:抓取雪球高回报用户的行为,对股票市场进行分析和预测. 爬虫是入门Python

Python 爬虫基础

下面是一个 Python 爬虫最简单的例子,使用网络库 urllib2 和正则表达式库 re,模拟浏览器的 User-Agent. #!/usr/bin/env python # -*- coding: utf-8 -*- #引入基础网络库 import urllib2 #引入正则表达式模块 import re #模拟User-Agent headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWe

Python爬虫基础之requests

一.随时随地爬取一个网页下来 怎么爬取网页?对网站开发了解的都知道,浏览器访问Url向服务器发送请求,服务器响应浏览器请求并返回一堆HTML信息,其中包括html标签,css样式,js脚本等.我们之前用的是Python标准基础库Urllib实现的, 现在我们使用Python的Requests HTTP库写个脚本开始爬取网页.Requests的口号很响亮“让HTTP服务人类“,够霸气. 二.Python Requests库的基本使用 1.GET和POST请求方式 GET请求 1 import re

python爬虫基础04-网页解析库xpath

更简单高效的HTML数据提取-Xpath 本文地址:https://www.jianshu.com/p/90e4b83575e2 XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. 相比于BeautifulSoup,Xpath在提取数据时会更加的方便. 安装 在Python中很多库都有提供Xpath的功能,但是最基本的还是lxml这个库,效率最高.在之前BeautifulSoup章节中我们也介绍到了lxml是如何安装的. pip ins

Python爬虫基础知识及前期准备

学习爬虫有一小段时间了,于是决定把自己学爬虫时所学的,写过的代码以及看过的文档记录下来,权当小结.第一次写这些,如果有错误,请多指教. 首先我们需要了解一下什么是爬虫. 根据百度百科上给出的定义," 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本."简单来说,爬虫类似手动下载网页信息,比如小说.歌曲.说到这,或许会有疑问,既然这样,干嘛还去敲代码,直接人工处理不好吗?话是这么说,但如果下载的

Python爬虫基础与技巧

基于Python2.7 1 基本抓取网页 get 方法 import urllib2url = "http://www.baidu.com"response = urllib2.urlopen(url)print response.read() post 方法 import urllibimport urllib2 url = "http://abcde.com"form = {'name':'abc','password':'1234'}form_data = u