pyquery是jQuery的Python实现,可以用以解析HTML网页的内容。官网文档:http://pythonhosted.org/pyquery/

下载:https://pypi.python.org/pypi/pyquery#downloads

测试了一下其功能如下:

http://www.verycd.com/topics/2960375/的网页源码为例:

提取originLink的图片链接地址:

   1: #!/usr/bin/python                                                                                                        

   2: from pyquery import PyQuery as pyq 

   3:  

   4: doc=pyq(url='http://www.verycd.com/topics/2960375/')

   5: for item in doc('span.post_origin_img'):

   6:   print doc(item).attr('originlink')

执行结果:

注1:因为在span标签内,并且有class=”post_origin_img” 所以可以通过span.post_origin_img定位到标签。然后该图片对应的是originLink,所以可以对对应的item取其属性为originLink的值。

注2:这里使用的originlink而不是originLink,是因为测试时,

   1: for item in doc('span.post_origin_img'):

   2:   print doc(item)                                                                                                        

   3:   print doc(item).attr('originlink')

测试结果:看出其priginlink为小写。原因暂不详。

   1: a title="PDF[2013/08/12 04:33:25]资源更新 共1个文件 42.2MB" href="/topics/2960275/" onclick="VeryCD.Track('/stat/topicsHot/');" target="_blank">《金庸全集-三联典藏版》高清文字版[PDF]</a>                        </dd>

   2:                                                                                             <dd class="itshot">

   3:                         <a id="entry_link_2960032" title="PDF[2013/08/11 05:18:31]资源更新 共1个文件 882.31KB" href="/topics/2960032/" onclick="VeryCD.Track('/stat/topicsHot/');" target="_blank" style="text-decoration:none;"><img load-src="http://i-7.vcimg.com/crop/7640b510631463a87309ad475a2505c328619(100x100)/thumb.jpg" alt="img" class="hot_img" height="100" width="100" style="display:inline;">

   4:                         <div id="entry_2960032" style="display:none;" class="entry_score_small"></div>

   5:                         </a>

   6:                         <br />

   7:                         <a title="PDF[2013/08/11 05:18:31]资源更新 共1个文件 882.31KB" href="/topics/2960032/" onclick="VeryCD.Track('/stat/topicsHot/');" target="_blank">《灵魂21克》文字版[PDF]</a>                        </dd>

   8:                                                                                             <dd class="itshot">

   9:                         <a id="entry_link_2861322" title="EPUB[2011/07/10 02:06:05]资源更新 共47个文件 1.35GB" href="/topics/2861322/" onclick="VeryCD.Track('/stat/topicsHot/');" target="_blank" style="text-decoration:none;"><img load-src="http://i-7.vcimg.com/crop/349a7faf7ed72283e92b9b071678f6d1155641(100x100)/thumb.jpg" alt="img" class="hot_img" height="100" width="100" style="display:inline;">

  10:                         <div id="entry_2861322" style="display:none;" class="entry_score_small"></div>

  11:                         </a>

可以根据id抽取内容,使用#id名字即可:实例如下:

   1: #!/usr/bin/python

   2: from pyquery import PyQuery as pyq 

   3:  

   4: doc=pyq(url='http://www.verycd.com/topics/2960375/')

   5: for item in doc('#entry_link_2861322'):

   6:   print doc(item)

执行结果:抽取了id为entry_link_2861322的html

自己构造测试

   1: doc=pyq('<;p id="test" class="test1" attr1="attr1_value">hello</p>')

   2: print doc('p')

   3: print doc('p#test')                                                                                                      

   4: print doc('p#test.test1')

   5: print doc('p#test.test1').attr('attr1')

执行结果:

结果上面的测试,我们看以看到使用pyquery,我们可以指定html的tag来抽取,是十分方便的。

python之pyquery 学习的更多相关文章

  1. 一个Python爬虫工程师学习养成记

    大数据的时代,网络爬虫已经成为了获取数据的一个重要手段. 但要学习好爬虫并没有那么简单.首先知识点和方向实在是太多了,它关系到了计算机网络.编程基础.前端开发.后端开发.App 开发与逆向.网络安全. ...

  2. Python 装饰器学习

    Python装饰器学习(九步入门)   这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 1 2 3 4 5 6 7 8 # -*- c ...

  3. Requests:Python HTTP Module学习笔记(一)(转)

    Requests:Python HTTP Module学习笔记(一) 在学习用python写爬虫的时候用到了Requests这个Http网络库,这个库简单好用并且功能强大,完全可以代替python的标 ...

  4. 从Theano到Lasagne:基于Python的深度学习的框架和库

    从Theano到Lasagne:基于Python的深度学习的框架和库 摘要:最近,深度神经网络以“Deep Dreams”形式在网站中如雨后春笋般出现,或是像谷歌研究原创论文中描述的那样:Incept ...

  5. Comprehensive learning path – Data Science in Python深入学习路径-使用python数据中学习

    http://blog.csdn.net/pipisorry/article/details/44245575 关于怎么学习python,并将python用于数据科学.数据分析.机器学习中的一篇非常好 ...

  6. (转载)Python装饰器学习

    转载出处:http://www.cnblogs.com/rhcad/archive/2011/12/21/2295507.html 这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方 ...

  7. python网络爬虫学习笔记

    python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...

  8. Python装饰器学习

    Python装饰器学习(九步入门)   这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 ? 1 2 3 4 5 6 7 8 # -*- ...

  9. Python的基础学习(第二周)

    模块初始 sys模块 import sys sys.path #打印环境变量 sys.argv#打印该文件路径 #注意:该文件名字不能跟导入模块名字相同 os模块 import os cmd_res ...

随机推荐

  1. linux终端命令行缩短显示路径

    1,修改.bashrc文件(用户根目录下) vim 打开.bashrc文件,找到如下这行: else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ...

  2. 关于导出Excel出现异常的解决办法。:System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

    异常信息为:System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} ...

  3. tcp - 传输控制协议 (TCP)

    总缆 SYNOPSIS #include <sys/socket.h> #include <netinet/in.h> tcp_socket = socket(PF_INET, ...

  4. python3 获取当前路径及os.path.dirname的使用

    方法一: import sys,os os.getcwd()#然后就可以看见结果了 方法二: import os os.path.dirname(os.path.realpath('__file__' ...

  5. JSON对象排序并生成URL参数

    1、for in function jsontourl(param) { let params = {}, data=[]; let arr = Object.keys(param).sort(); ...

  6. MYSQL-连续出现的数字

    编写一个 SQL 查询,查找所有至少连续出现三次的数字. +----+-----+| Id | Num |+----+-----+| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 2 ...

  7. docker部署coredns

    示例: [root@corends coredns]# cd /home/coredns/ [root@corends coredns]# ls -al total drwxr-xr-x root r ...

  8. Android中自己定义一个shade.xml

    自己定义一个shade: <shape> <!-- 实心 --> <solid android:color="#ff9d77"/> <!- ...

  9. list 链表

    #include <list> #include <iostream> using std::list; /* 双向环状链表 //每一个结点 一个数据域 一个前驱指针 一个后驱 ...

  10. delphi 给程序加托盘图标

    一些程序运行时,会在桌面的右下角显示一个图标(任务栏的右边),这类图标称为 托盘.托盘是一个PNotifyIconDataA类型的结构,要增加托盘图标其实就是对结构PNotifyIconDataA的操 ...