采用python的pyquery引擎做网页爬虫,进行数据分析

简介:

python下的  pyquery  很给力的 !!!



pyquery 可以让你用jquery语法来对xml进行查询。这个API和jquery十分类似。如果利用lxml,pyquery对xml和html的操作将更加快速。


这个库并不是(至少还不是)一个可以和javascript互交的代码库。只是很喜欢jquery API并且在使用python的过程中,我真的很怀念jquery,所以我告诉我自己“让我们在python里面也使用jquery吧!”所以就有了这个库。


这个库可以有多种用途,比如我可以在将来用pyquery对纯http模板就行编辑,或者可以和Deliverance配套使用对样式进行操作.


这个项目现在基于mercurial开发,并用Bitbucket发布。我有权给任何想要审查代码的人权利。如果你想对代码进行贡献,给我电邮吧。



真心觉得比urllib2好用的多。


http://pypi.python.org/packages/source/p/pyquery/pyquery-0.3.tar.gz

解压缩

python setup.py install

就可以了,可能要安装ezsetup

现在的版本是0.3,还有一些jquery的东西没有实现,比如:radio,:password,以及一些ajax的功能,但是已经够用了,强烈推荐



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>>> from pyquery  import  PyQuery  as  pq
>>>d = pq( "<html></html>" ) #可以直接拼HTML
可加载一段HTML字符串,或一个HTML文件,或是一个url地址
>>>d = pq(url= 'http://ops.ruifengyun.com/' ) #也可以打开一个url
>>> d( 'title' ) #取title元素
[<title>]
html()和text() ——获取相应的HTML块或文本块
>>> print d( 'title' ).text()
ops 自动运维项目 监控,实时数据,集群管理
根据HTML标签来获取元素
>>> d( '.s' ) #根据类名获取元素
[<li.s>, <li.s>, <li.s>, <li.s>, <li.s>, <li.s>, <li.s>, <li.s>]
注意:当获取到的元素不只一个时,html()、text()方法只返回首个元素的相应内容块
>>> a = d( '#sshcreate li:e(2)' ).find( 'a' ) #复杂点的选择器也是可以的,看来支持的不错
>>> a.attr( 'href' ) #属性操作
'http://monitor.ruifengyun.com/'


1
2
3
4
5
6
7
8
#coding=utf- 8
import  urllib
from pyquery  import  PyQuery
res = urllib.urlopen( 'http://movie.douban.com/subject/2129132/' ).read()
d = PyQuery(res)
print  "主演:"
for  starring  in  d( "a[rel='v:starring']" ):
     print PyQuery(starring).text()



162208580.png




 本文转自 rfyiamcool 51CTO博客,原文链接:http://blog.51cto.com/rfyiamcool/1132725,如需转载请自行联系原作者


相关文章
|
2天前
|
数据采集 JSON API
自动化Reddit图片收集:Python爬虫技巧
自动化Reddit图片收集:Python爬虫技巧
|
4天前
|
Python 数据挖掘 数据可视化
Python数据分析——Pandas与Jupyter Notebook
【6月更文挑战第1天】 本文探讨了如何使用Python的Pandas库和Jupyter Notebook进行数据分析。首先,介绍了安装和设置步骤,然后展示了如何使用Pandas的DataFrame进行数据加载、清洗和基本分析。接着,通过Jupyter Notebook的交互式环境,演示了数据分析和可视化,包括直方图的创建。文章还涉及数据清洗,如处理缺失值,并展示了如何进行高级数据分析,如数据分组和聚合。此外,还提供了将分析结果导出到文件的方法。通过销售数据的完整案例,详细说明了从加载数据到可视化和结果导出的全过程。最后,讨论了进一步的分析和可视化技巧,如销售额趋势、产品销售排名和区域分布,以及
19 2
|
8天前
|
存储 并行计算 数据挖掘
Python中的NumPy库:科学计算与数据分析的基石
Python中的NumPy库:科学计算与数据分析的基石
63 0
|
8天前
|
数据采集 存储 C++
单线程 vs 多进程:Python网络爬虫效率对比
本文探讨了Python网络爬虫中的单线程与多进程应用。单线程爬虫实现简单,但处理速度慢,无法充分利用多核CPU。而多进程爬虫通过并行处理提高效率,更适合现代多核架构。代码示例展示了如何使用代理IP实现单线程和多进程爬虫,显示了多进程在效率上的优势。实际使用时还需考虑代理稳定性和反爬策略。
单线程 vs 多进程:Python网络爬虫效率对比
|
9天前
|
数据采集 存储 中间件
Python高效爬虫——scrapy介绍与使用
Scrapy是一个快速且高效的网页抓取框架,用于抓取网站并从中提取结构化数据。它可用于多种用途,从数据挖掘到监控和自动化测试。 相比于自己通过requests等模块开发爬虫,scrapy能极大的提高开发效率,包括且不限于以下原因: 1. 它是一个异步框架,并且能通过配置调节并发量,还可以针对域名或ip进行精准控制 2. 内置了xpath等提取器,方便提取结构化数据 3. 有爬虫中间件和下载中间件,可以轻松地添加、修改或删除请求和响应的处理逻辑,从而增强了框架的可扩展性 4. 通过管道方式存储数据,更加方便快捷的开发各种数据储存方式
|
9天前
|
数据采集 XML 数据可视化
使用Python进行简单的网页与数据分析
使用Python进行简单的网页与数据分析
57 0
|
9天前
|
数据采集 机器学习/深度学习 数据可视化
使用Python进行简单的数据分析与可视化
使用Python进行简单的数据分析与可视化
91 0
|
9天前
|
数据采集 数据挖掘 数据处理
Python数据分析实战:使用Pandas处理Excel文件
Python数据分析实战:使用Pandas处理Excel文件
86 0
|
9天前
|
数据采集 SQL 数据可视化
使用Python和Pandas库进行数据分析的入门指南
使用Python和Pandas库进行数据分析的入门指南
72 0
|
9天前
|
数据采集 SQL 存储
使用Python和Pandas进行数据分析
使用Python和Pandas进行数据分析
22 0