爬虫训练(五):Lxml库与Xpath语法

基础内容主要参考《从零开始学python网络爬虫》。
今天主要练习lxml库和xpath语法的使用,本文主要记录个人操作中的问题。

一、lxml库

lxml库为XML解析库,但也很好的支持了HTML文档的解析功能。lxml库很实用的功能就是自动修正HTML代码。

二、xpath语法

xpath是一门在XML文档中查找信息的语言,对HTML文档也有很好的支持。
1、节点关系

节点名 性质
父节点 每个元素及属性都有一个节点
子节点 元素节点可能有0个、一个或多个子节点
同胞节点 同胞节点拥有相同的父节点
先辈节点 先辈节点指某节点的父、父的父节点等
后代节点 后代节点指某个节点的子节点,子节点的子节点等

2、节点选择

节点选择表达式 描述 实例
nodename 选取此节点的所有子节点 user_database:选取元素user_database的所有子节点
/ 从根节点选取 /user_database:选取根元素user_database。(注释:假如路径起始于正斜杠(/),则此路径始终代表到某元素的绝对路径)。user_database/user:选取属于user_database的子元素的所有user元素。
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 //user:选取所有user子元素,而不管它们在文档中的位置。user_database//user:选取属于user_database元素的后代的所有user元素,而不管它们位于user_database之下的什么位置。
. 选取当前节点 -----
选取当前节点的父节点 -----
@ 选取属性 //@attribute:选取名为attribute的所有属性
谓语路径表达式 结果
/user_database/user[1] 选取属于user_database子元素的第一个user元素
//li[@attribute] 选取所有拥有名为attribute属性的li元素
//li[@attribute=‘red’] 选取所有li元素,且这些元素拥有值为red的attribute属性
三、爬取豆瓣图书top250
# coding=utf-8
import csv
from lxml import etree
import requests

fp=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值