lxml库:是xml解析库,也支持html文档解析功能,实用功能:自动修正补全html代码。

使用流程:①导入lxml中的etree库,②利用etree.HTML(文件名)或etree.parse(本地打开,路径)进行初始化,③etree库把HTML文档解析为Element对象。

from lxml import etree

text="""

<div >

<div class="sidebarContent">sdssdds

</div>

"""

html=etree.HTML(text)

result=etree.HTML(html)

print(result)

xpath语法:是一门在xml文档中查找信息的语言,对html文档也有很好的支持。

节点分类

先辈节点

父节点

同胞节点《=本节点

子节点

后代节点

xpath 的语法

分三部分:/ div [1]

①/或//或.或..  只有/表示确定剩下都表示不确定要根据节点谓语确定。

②div 表示标签

③[1]第一个节点

做模糊查询

表达式中有非(/)符号就是。

分叉路径的内容寻找。思路:先抓大后抓小,寻找循环点。

①有共同先辈节点

import  requests

from  lxml import etree

header={

Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36

}

url='https://www.baidu.com/?tn=90278658_hao_pg'

res=requests.get(url,heads=heads)

selector=etree.HTML(res.test)

#运用两次xpath方法

url_infos=selector.xpath('//div[@class="asd asdf"]')

for url_info in url_infos:

  id=url_info.xpath('div[2]/a[1]/text()')[0]

print (id)

②互为同胞节点(标签名相同,属性不同)

from lxml import etree

html1="""

<li class="tag-1">内容1</li>

<li class="tag-1">内容2</li>

<li class="tag-1">内容3</li>

<li class="tag-1">内容4</li>

"""

selector=etree.HTML(html1)

contents=elector.xpath('//li[starts-with(@class,"tag")]/text()')

for content in contents:

  print(content)

③为父子关系

from lxml import etree

html1="""

<li class="red">内容1

<h1>内容2</h1>

</li>

"""

selector=etree.HTML(html1)

content1=selector.xpath('//div[@class="red"]')[0]

#string(.)方法可用于标签套标签情况

content2=content1.xpath('string(.)')

  print(content2)

python爬虫之路——初识lxml库和xpath语法的更多相关文章

  1. python爬虫之路——初识爬虫三大库,requests,lxml,beautiful.

    三大库:requests,lxml,beautifulSoup. Request库作用:请求网站获取网页数据. get()的基本使用方法 #导入库 import requests #向网站发送请求,获 ...

  2. python爬虫之路——初识爬虫原理

    爬虫主要做两件事 ①模拟计算机对服务器发起Request请求 ②接收服务器端的Response内容并解析,提取所需的信息 互联网页面错综复杂,一次请求不能获取全部信息.就需要设计爬虫的流程. 本书主要 ...

  3. python爬虫之路——初识函数与控制语句

    介绍python函数的定义与使用方法,介绍Python的常用控制语句:判断和循环 函数: 格式 def   函数名(参数1,参数2): return ‘结果’ 判断语句:就是多选一 二选一: if c ...

  4. python爬虫之路——初识数据库存储

    非关系型数据库:MongoDB.关系型数据库:MySQL 关系型和非关系型的区别: 安装: 使用: 应用场景: mongoDB是一种非关系型数据库,分为四大类:键值存储数据库,列存储数据库,文档型数据 ...

  5. python爬虫之路——初识基本页面构造原理

    通过chrome浏览器的使用简单介绍网页构成 360浏览器使用右键审查元素,Chrome浏览器使用右键检查,都可查看网页代码. 网页代码有两部分:HTML文件和CSS样式.其中有<script& ...

  6. Python爬虫之Beautiful Soup解析库的使用(五)

    Python爬虫之Beautiful Soup解析库的使用 Beautiful Soup-介绍 Python第三方库,用于从HTML或XML中提取数据官方:http://www.crummv.com/ ...

  7. (转)Python爬虫利器一之Requests库的用法

    官方文档 以下内容大多来自于官方文档,本文进行了一些修改和总结.要了解更多可以参考 官方文档 安装 利用 pip 安装 $ pip install requests 或者利用 easy_install ...

  8. Python爬虫利器一之Requests库的用法

    前言 之前我们用了 urllib 库,这个作为入门的工具还是不错的,对了解一些爬虫的基本理念,掌握爬虫爬取的流程有所帮助.入门之后,我们就需要学习一些更加高级的内容和工具来方便我们的爬取.那么这一节来 ...

  9. Python爬虫入门四之Urllib库的高级用法

    1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性. 首先,打开我们的浏览 ...

随机推荐

  1. win10 ObservableCollection 排序自动收缩问题

    ObservableCollection本身是没有排序Sort功能的,不过我们可以通过冒泡排序来实现,以下是扩展功能: public static void Sort<T>(this Ob ...

  2. HERO3+ Black Edition 视角 (FOV) 信息

    HERO3+ Black Edition 视角 (FOV) 信息 问题  HERO3+ Black Edition 视角 (FOV) 信息是什么? 它在哪适用? HERO3+ Black 作答 所有视 ...

  3. 一个工程多个Target

    当我们同一个工程需要在不同情形下编译打包,比如打个人包.企业包的时候,其中可能有一些细小的差别,又不想每次都先修改再打包的时候,我们可以通过创建多个Target来实现. 1.copy原有Target ...

  4. 读取静态Json文件

    创建web项目: string Json = string.Empty; string filePath = Server.MapPath("/***.json");//根目录下的 ...

  5. Javascript实现打开或退出浏览器全屏

    废话不多说,直接上代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www. ...

  6. 使用BCG创建Pie

    1.新建一个BCG的对话框,添加一个文本框,并修改属性,添加成员变量,并设置Category为Control. 2.在class CCharPieDlg : public CBCGPDialog修改文 ...

  7. 前端需要了解的http知识

    一.五层协议1. OSI(Open System Interconnection 开放式系统互联)七层协议 1)应用层 2)表示层 3)会话层 4)传输层 5)网络层 6)数据链接层 7)物理层2. ...

  8. PJzhang:安全小课堂-安全软件为什么很重要,看这里!

    猫宁!!! 参考链接: http://www.360.cn/webzhuanti/mianyigongju.html https://www.freebuf.com/fevents/204100.ht ...

  9. Zookeeper入门看这篇就够了!!

    Zookeeper是什么 官方文档上这么解释zookeeper,它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名 ...

  10. Sublime Text 3 配置 sass

    先安装Sublime Text的sass 和 sass build插件, Sublime Text新建一个test.scss文件 $color: #369;  body {     backgroun ...