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. 嵌套循环结合修改IFS环境变量遍历文件数据中IFS的修改一致性

    以下这个脚本使用了两个不同的IFS值来解析数据.第一个IFS值解析出/etc/passwd文件中的单独的行.内部for循环接着将IFS值改为冒号,云溪你从/etc/passwd的行中解析出单独的值. ...

  2. Pytest -断言、跳过及运行

    基本断言方法: Pytest框架assert断言使用 • 断言:支持显示最常见的子表达式的值,包括调用,属性,比较以及二元和一元运算 符. • 包含,相等,不等,大于 小于运算,assertnot 假 ...

  3. iOS开发系列-Block

    概述 在iOS 4.0之后,block横空出世,它本身封装了一段代码并将这段代码当做变量,通过block()的方式进行回调.这不免让我们想到在C函数中,我们可以定义一个指向函数的指针并且调用. #im ...

  4. CodeForces - 337D 树形dp

    题意:一颗树上有且仅有一只恶魔,恶魔会污染距离它小于等于d的点,现在已经知道被污染的m个点,问恶魔在的可能结点的数量. 容易想到,要是一个点到(距离最远的两个点)的距离都小于等于d,那么这个点就有可能 ...

  5. Java对象什么时候可以被垃圾回收?JVM的永久代中会发生垃圾回收么?

    当对象对当前使用这个对象的应用程序变得不可触及的时候,这个对象就可以被回收了.垃圾回收不会发生在永久代,如果永久代满了或者是超过了临界值,会触发完全垃圾回收(Full GC).如果你仔细查看垃圾收集器 ...

  6. 再也不用字符串拼接dom元素了

    <script type="text/html" id="tmp"> <div class="cla"> <u ...

  7. koa-artTemplate 的使用

    1.父页面 <html> <head> <meta charset="UTF-8"> <title>我的音乐</title&g ...

  8. Android开发 VideoView视频播放详解

    前言 VideoView是Android主要的视频播放View,它其实是对MediaPlayer的再次封装.如果你已经了解过MediaPlayer在使用VideoView是十分简单的.如果你想先了解M ...

  9. Java HashMap问题

    1:map集合简述:         我们常用的集合实现类有HashMap.LinkedHashMap.TreeMap,HashTable.HashMap根据key的hashCode值来保存value ...

  10. Ansible自动化部署K8S集群

    Ansible自动化部署K8S集群 1.1 Ansible介绍 Ansible是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新.Ansible适用于管理企 ...