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. android 批量加载数据

    public class MainActivity extends Activity { private ListView listView; private List<String> d ...

  2. 更新view是可以update到表的

    视图不是表,视图里面的数据是通过sql语句去表中查询得到的.当表中的数据发送更改之后,视图里的数据也会发生相应的更改.所以我么一般有两种方式更新视图里面的数据:一是更新表中的数据,从而间接地更新视图中 ...

  3. DLL 本地定义符号*****在函数****中导入

    把_DLL_ELOGEVENT  定义到你的工程预编译宏中 IPCLASSDLL_DLL https://bbs.csdn.net/topics/300140279

  4. 在虚拟机中使用maven编译signal server项目记录

    前言 安装好 mvn Ubuntu 16.04 JDK 我是从 oracle jdk 11 lts download 网站,复制jdk-11.0.4_linux-x64_bin.tar.gz的链接 w ...

  5. org.springframework.web.servlet.DispatcherServlet异常

    org.springframework.web.servlet.DispatcherServlet: No mapping found for HTTP request with URI [/] in ...

  6. 使用cordova,使html5也能像IOS,Android那样可以 调取手机的相机拍照功能

    一,我们在使用html5的技术开发手机app时,并不能像IOS,Android那样可以调取手机原生的相机功能,这是我们就要借助一些插件来时实现. 二,安装Cordoba的相机插件 1.在文件目录下,使 ...

  7. pro、pre、test、dev环境

    开发过程中四个环境分别是:pro.pre.test.dev环境,中文名字:生产环境.灰度环境.测试环境.开发环境 环境介绍: pro环境:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境. ...

  8. JZOJ4605. 排序(线段树合并与分裂)

    题目大意: 每次把一个区间升序或降序排序,最后问一个点是什么. 题解: 如果只是问一个点,这确乎是个经典题,二分一下答案然后线段树维护01排序. 从pty那里get到了可以用线段树的合并与分裂实时地维 ...

  9. Linux之-命令

    安装xshell http://jingyan.baidu.com/article/1612d500af1c97e20e1eee25.html 1.帮助命令 man:获得某个命令的说明和使用方式的详细 ...

  10. 深入理解PHP原理之Opcodes(PHP执行代码会经过的4个步骤是什么)

    深入理解PHP原理之Opcodes(PHP执行代码会经过的4个步骤是什么) 一.总结 一句话总结: 1.Scanning(Lexing) ,将PHP代码转换为语言片段(Tokens) 2.Parsin ...