1. pyquery

1.1 介绍如果你对CSS选择器与Jquery有有所了解,那么还有个解析库可以适合你--Jquery官网https://pythonhosted.org/pyquery/

1.2 安装pip install pyquery

1.3 使用方式

1.3.1 初始化方式字符串

from pyquery import PyQuery as pq

doc = pq(str)

print(doc(tagname))url

from pyquery import PyQuery as pq

doc = pq(url='http://www.baidu.com')

print(doc('title'))文件

from pyquery import PyQuery as pq

doc = pq(filename='demo.html')

print(doc(tagname))

1.3.2 选择节点获取当前节点

from pyquery import PyQuery as pq

doc = pq(filename='demo.html')

doc('#main #top')获取子节点在doc中一层层写出来

获取到父标签后使用children方法

from pyquery import PyQuery as pq

doc = pq(filename='demo.html')

doc('#main #top').children()获取父节点获取到当前节点后使用parent方法

获取兄弟节点获取到当前节点后使用siblings方法

1.3.3 获取属性

from pyquery import PyQuery as pq

doc = pq(filename='demo.html')

a = doc('#main #top')

print(a.attrib['href'])

1.3.4 获取内容

from pyquery import PyQuery as pq

doc = pq(filename='demo.html')

div = doc('#main #top')

print(a.html())

print(a.text())

1.3.5 样例

from pyquery import PyQuery as pq

# 1.可加载一段HTML字符串,或一个HTML文件,或是一个url地址,

d=pq("

hello")

d=pq(filename=path_to_html_file)

d=pq(url='http://www.baidu.com')注意:此处url似乎必须写全

# 2.html()和text() ——获取相应的HTML块或文本块,

p=pq("

hello")

p('head').html()#返回

hello

p('head').text()#返回hello

# 3.根据HTML标签来获取元素,

d=pq('

test 1

test 2

')

d('p')#返回[

,

]

print d('p')#返回

test 1

test 2

print d('p').html()#返回test 1

# 注意:当获取到的元素不只一个时,html()方法只返回首个元素的相应内容块

# 4.eq(index) ——根据给定的索引号得到指定元素。接上例,若想得到第二个p标签内的内容,则可以:

print d('p').eq(1).html() #返回test 2

# 5.filter() ——根据类名、id名得到指定元素,例:

d=pq("

test 1

test 2

")

d('p').filter('#1') #返回[

]

d('p').filter('.2') #返回[

]

# 6.find() ——查找嵌套元素,例:

d=pq("

test 1

test 2

")

d('div').find('p')#返回[

,

]

d('div').find('p').eq(0)#返回[

]

#7.直接根据类名、id名获取元素,例:

d=pq("

test 1

test 2

")

d('#1').html()#返回test 1

d('.2').html()#返回test 2

# 8.获取属性值,例:

d=pq("

hello

")

d('a').attr('href')#返回http://hello.com

d('p').attr('id')#返回my_id

# 9.修改属性值,例:

d('a').attr('href', 'http://baidu.com')把href属性修改为了baidu

# 10.addClass(value) ——为元素添加类,例:

d=pq('

d.addClass('my_class')#返回[

]

# 11.hasClass(name) #返回判断元素是否包含给定的类,例:

d=pq("

d.hasClass('my_class')#返回True

# 12.children(selector=None) ——获取子元素,例:

d=pq("

hello

world

")

d.children()#返回[

,

]

d.children('#2')#返回[

]

# 13.parents(selector=None)——获取父元素,例:

d=pq("

hello

world

")

d('p').parents()#返回[]

d('#1').parents('span')#返回[]

d('#1').parents('p')#返回[]

# 14.clone() ——返回一个节点的拷贝

#15.empty() ——移除节点内容

# 16.nextAll(selector=None) ——返回后面全部的元素块,例:

d=pq("

hello

world

")

d('p:first').nextAll()#返回[

, ]

d('p:last').nextAll()#返回[]

# 17.not_(selector) ——返回不匹配选择器的元素,例:

d=pq("

test 1

test 2

")

d('p').not_('#2')#返回[

]

python pyquery不规则数据的抓取_11. 数据提取-PyQuery相关推荐

  1. python推特爬虫_Tweepy1_抓取Twitter数据

    之前一直想用爬虫登陆并抓取twitter数据,试过scrapy,requests等包,都没成功,可能是我还不太熟悉的原因,不过 今天发现了一个新包tweepy,专门用于在Python中处理twitte ...

  2. 利用新浪API实现数据的抓取\微博数据爬取\微博爬虫 1

    PS:(本人长期出售超大量微博数据.旅游网站评论数据,并提供各种指定数据爬取服务,Message to YuboonaZhang@Yahoo.com.由于微博接口更新后限制增大,这个代码已经不能用来爬 ...

  3. 利用新浪API实现数据的抓取\微博数据爬取\微博爬虫

    PS:(本人长期出售超大量微博数据.旅游网站评论数据,并提供各种指定数据爬取服务,Message to YuboonaZhang@Yahoo.com.由于微博接口更新后限制增大,这个代码已经不能用来爬 ...

  4. java取网页数据_Java抓取网页数据(原来的页面+Javascript返回数据)

    转载请注明出处. 有时候因为种种原因.我们须要採集某个站点的数据.但因为不同站点对数据的显示方式略有不同! 本文就用Java给大家演示怎样抓取站点的数据:(1)抓取原网页数据.(2)抓取网页Javas ...

  5. python登录网页后抓取数据_Python抓取网页数据的终极办法

    Pandas库有一种内置的方法,可以从名为read_html()的html页面中提取表格数据: https://pandas.pydata.org/import pandas as pdtables ...

  6. r语言 python 股票_R语言:抓取股票数据并存入数据库进行分析实例 MySQL

    R语言连接mySql 准备: RODBC R studio console下 > Install.packages(RODBC) 安装MySql https://dev.mysql.com/ge ...

  7. vba抓取html文件数据,VBA抓取PDF数据

    Excel VBA如何批量获取PDF文件中的内容 VBA能不能在pdf文件的内容中提取所需要的内容建议把人工操作步骤,写成按键精灵程序去半自动化完成.vba对pdf处理极弱,python也好不了太多. ...

  8. c 中html抓取页面图片,【教程】抓取网并提取网页中所需要的信息 之 C#版

    在通过: 了解了抓取网页的一般流程之后,加上之前介绍的: 应该就很清楚如何利用工具去抓取网页,并分析源码,获得所需内容了. 下面,就来通过实际的例子来介绍,如何通过Python语言,实现这个抓取网页并 ...

  9. python爬网页数据用什么_初学者如何用“python爬虫”技术抓取网页数据?

    原标题:初学者如何用"python爬虫"技术抓取网页数据? 在当今社会,互联网上充斥着许多有用的数据.我们只需要耐心观察并添加一些技术手段即可获得大量有价值的数据.而这里的&quo ...

最新文章

  1. 葡萄城报表介绍:复杂报表
  2. CSS3属性box-sizing
  3. Java进阶:CyclicBarrier基本使用
  4. python祝福祖国代码_国庆节踩空间留言代码_国庆节祝福正在加载中
  5. SAP 电商云 FooterNavigationComponent 的设计细节
  6. Scala 写第一个程序HelloWorld
  7. led屏背后线路安装图解_LED屏安装工程施工方案
  8. 分享一些自己在用的maccms10的免费采集接口
  9. H5页面rem兼容适配及华为样式调整
  10. CSS3实现扇形动画菜单特效
  11. 前端应届生如何做一个职业规划
  12. 朋友,别再干巴巴地“陈述”简历了,10条写作的技巧分享给你
  13. EasyPusher安卓Android手机直播推送之MediaCodec 硬编码H264格式
  14. C语言编写Johnson-Trotter算法生成排列
  15. 【opencv】二维面找角点/关键点 实现
  16. Synergy v1.10版本跨平台鼠键共享资源
  17. porphet论文_【读论文】prophet
  18. 浙江工大学计算机学院保研,浙江工业大学计算机科学与技术学院(专业学位)软件工程保研...
  19. 关于hash哈希以及为什么python中dict和set的key必须为不可变对象
  20. BERTopic:NLP主题模型的未来!

热门文章

  1. 第七课 Linux裸机开发+SourceInsight3.5使用+notepad++使用
  2. Oracle书籍资料链接——更新ing
  3. 数据库系统实现 第一章 DBMS实现概述
  4. Android数据库框架-ORMLite
  5. flash builder 4.6在debug调试时需要系统安装flashplayer debug版本
  6. 【第二周】四人小组:车辆管理系统
  7. 【VS开发】COM组件技术概述
  8. [python实现设计模式]-3.简单工厂模式-触宝开放平台
  9. [转载] Python数据分析之Matplotlib数据可视化实例
  10. list排序成员函数对string对象与char*对象排序的差别