爬虫 2 XPath 和 pyquery
XPath
1.常用规则
表达式 | 描述 |
nodename | 选取此节点的所有子节点 |
/ | 从当前节点选取直接子节点 |
// | 从当前节点选取子孙节点 |
. | 选取当前节点 |
.. | 选取当前节点的父节点 |
@ | 选取属性 |
2.etree
python 3.5以上没有了整合的库,通过from lxml import etree 调用,pycharm会报错,但是功能还是能够实现
etree.HTML() 对html文本进行初始化
etree.tostring() 输出修正后的代码 (bytes类型)
etree.parse(文本名,etree.HTMLparser()) 读取文本解析
3.xpath
//* 选取所有节点
//ul/li 选取子节点或者子孙节点
//li[@class="item"] 属性匹配
//a/@href 获取属性
当遇到classname有多个值,可以使用contain()方法
XPath提供了100多个函数,具体可以参考:
http://www.w3school.com.cn/xpath/xpath_functions.asp
pyquery
1.调用方法
from pyquery impoPyQuery
1)PyQuery(str)字符串初始化
2)PyQuery(url = ‘’)URL初始化
与
PyQuery(requests,get(url).text)功能相同
3) PyQuery(filename = ‘’)文件初始化
2.基本 css选择器
from pyquery import PyQuery as pq
doc = pq(html)
print(doc('#container .list li'))
类型为PyQuery类型
查询函数和jQuery的用法相同
find() 查询节点的所有子孙节点 可传入css选择器筛选符合条件的节点
children() 查询子节点 可传入css选择器筛选符合条件的节点
parent() 查询父节点 可传入css选择器筛选符合条件的节点
parents() 查询祖先节点 可传入css选择器筛选符合条件的节点
siblings() 查询兄弟节点 可传入css选择器筛选符合条件的节点
items() 得到一个生成器,实现遍历
.attr.属性 获取属性
text() 获取文本,改变节点内部的内容
addClass() 添加指定class属性
removeClass() 删除指定class属性
attr() 修改属性等
html() 改变节点内部的内容
remove() 移除指定节点
pyquery强大的一点是它能支持伪类选择器
标签名:first-child 第一个节点
标签名:last-child 最后一个节点
标签名:ntn-child(2) 第二个节点
标签名:gt(2) 第三个节点之后的此标签节点
标签名:ntn-child(2n) 偶数位置的节点
标签名:contains(文本内容) 包含此文本内容的节点
爬虫 2 XPath 和 pyquery的更多相关文章
- Python爬虫利器六之PyQuery的用法
前言 你是否觉得 XPath 的用法多少有点晦涩难记呢? 你是否觉得 BeautifulSoup 的语法多少有些悭吝难懂呢? 你是否甚至还在苦苦研究正则表达式却因为少些了一个点而抓狂呢? 你是否已经有 ...
- 一起学爬虫——使用selenium和pyquery爬取京东商品列表
layout: article title: 一起学爬虫--使用selenium和pyquery爬取京东商品列表 mathjax: true --- 今天一起学起使用selenium和pyquery爬 ...
- 爬虫常用Xpath和CSS3选择器对比
爬虫常用Xpath和CSS3选择器对比 1. 简介 CSS是来配合HTML工作的,和Xpath对比起来,CSS选择器通常都比较短小,但是功能不够强大.CSS中的空白符' '和Xpath的'//'都表示 ...
- python爬虫:XPath语法和使用示例
python爬虫:XPath语法和使用示例 XPath(XML Path Language)是一门在XML文档中查找信息的语言,可以用来在XML文档中对元素和属性进行遍历. 选取节点 XPath使用路 ...
- Python爬虫之xpath语法及案例使用
Python爬虫之xpath语法及案例使用 ---- 钢铁侠的知识库 2022.08.15 我们在写Python爬虫时,经常需要对网页提取信息,如果用传统正则表达去写会增加很多工作量,此时需要一种对数 ...
- 非常全的一份Python爬虫的Xpath博文
非常全的一份Python爬虫的Xpath博文 Xpath 是 python 爬虫过程中非常重要的一个用来定位的一种语法. 一.开始使用 首先我们需要得到一个 HTML 源代码,用来模拟爬取网页中的源代 ...
- 爬虫神器xpath的用法(三)
xpath的多线程爬虫 #encoding=utf-8 ''' pool = Pool(4) cpu的核数为4核 results = pool.map(爬取函数,网址列表) ''' from mult ...
- 爬虫神器XPath,程序员带你免费获取周星驰等明星热门电影
本教程由"做全栈攻城狮"原创首发,本人大学生一枚平时还需要上课,但尽量每日更新文章教程.一方面把我所习得的知识分享出来,希望能对初学者有所帮助.另一方面总结自己所学,以备以后查看. ...
- 互联网金融爬虫怎么写-第一课 p2p网贷爬虫(XPath入门)
版权声明:本文为博主原创文章,未经博主允许不得转载. 相关教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 手把手教你写电商爬虫-第三课 ...
随机推荐
- pycrypto安装出错的问题 intmax_t C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.
前言: 需要安装 Microsoft Visual Studio2017 Community 或者buildtools 解决方案一(解决了python3.7上安装pycrypto-2.6.1的错误问题 ...
- os常用模块,json,pickle,shelve模块,正则表达式(实现运算符分离),logging模块,配置模块,路径叠加,哈希算法
一.os常用模块 显示当前工作目录 print(os.getcwd()) 返回上一层目录 os.chdir("..") 创建文件包 os.makedirs('python2/bin ...
- 【剑指Offer】只出现一次的字符
题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...
- CDH断电后cloudera-scm-server启动报错
报错背景: CDH未关闭的情况下,Linux断电,导致cloudera-scm-server无法启动. 报错现象: 输入启动命令之后:/opt/cm-5.15.1/etc/init.d/clouder ...
- Hibernate查询部分字段并封装到指定类中
Hibernate 使用查询部分/指定字段,有几种字现方式: 第一种方式是通过HQL语句实现,类似SQL,方法如下: String hql = "select id,name from Li ...
- Mybatis常见疑问
1.在连接数据库时候,mysql是否支持fetchsize分页获取? 满足以下几个条件,可以使用fetchsize,根据游标获得记录 ①MySQL 从5.0.2开始支持分页获得. ②同时需要在jdbc ...
- JMeter4.0源码导入Eclipse记录
参考: https://blog.csdn.net/yue530tomtom/article/details/77870233?locationNum=10&fps=1 1.准备jdk环境 下 ...
- php curl使用 常用操作
1. http Get 简单的只需要 这四行 就 $ch = curl_init (); curl_setopt ( $ch, CURLOPT_URL, "http://site" ...
- vue+axios完美实现前端路由拦截
一.路由拦截 1.首先在router的index.js里配置一个自定义字段requireAuth,用该字段来判断进入该路由是否需要登录.如果已经登陆则进入该路由,反之则进入登录页面. 如图是路由配置: ...
- Android 开发 记录一个DP、PX、SP转换工具类
public class UnitConversionUtil { /** * 根据手机分辨率从DP转成PX * @param context * @param dpValue * @return * ...