PyQuery是解析页面常用的库.是python对jquery的封装.
下面是一份解析基本页面的代码.后期用到复杂或者实用的方式再增加.
 from pyquery import PyQuery as pq

 # 参数为字符串的情况
html_str = "<html></html>" # 参数为网页链接(需带 http://)
your_url = "http://www.baidu.com" # 参数为文件
path_to_html_file = "hello123.html" # 将参数传入pq库之后得到html页面
# d = pq(html_str)
# d = pq(etree.fromstring(html_str))
# d = pq(url=your_url)
# d = pq(url=your_url,
# opener=lambda url, **kw: urlopen(url).read())
d = pq(filename=path_to_html_file) # 此时的'd'相当于Jquery的'$',选择器,可以通过标签,id,class等选择元素 # 通过id选择
table = d("#my_table") # 通过标签选择
head = d("head") # 通过样式选择,多个样式写一起,使用逗号隔开即可
p = d(".p_font") # 获取标签内的文本
text = p.text()
print text # 获取标签的属性值
t_class = table.attr('class')
print t_class # 遍历标签内的选项
# 打印表格中的td中的文字
for item in table.items():
# 这个循环只循环一次,item仍然是pquery的对象
print item.text() for item in table('td'):
# 这个循环循环多次,item是html的对象
print item.text

用于测试的html代码:

 1 
2  <head>

3 <title>Test</title>
</head>
<body>
<h1>Parse me!</h1>
<img src = "" />
<p>A paragraph.</p>
<p class = "p_font">A paragraph with class.</p>
<!-- comment -->
<div>
<p>A paragraph in div.</p>
</div>
<table id = "my_table" class = "test-table">
<thead>
</thead>
<tbody>
<tr>
<td>Month</td>
<td>Savings</td>
</tr>
<tr>
<td>January</td>
<td>$100</td>
</tr>
</tbody>
</table>
</body>
</html>

分析html的结果输出如下:

A paragraph with class.
test-table
Month Savings January $100
Month
Savings
January
$100

由于使用python2,有的网页使用requests直接抓取下来放入pyquery()里面会出编码问题,这时使用unicode()转换一下即可.部分代码如下:

import requests
from pyquery import PyQuery as pq r = requests.get('http://www.baidu.com')
# d = pq(r.content)
u = unicode(r.content, 'utf-8')
d = pq(u)

Python爬虫常用之PyQuery的更多相关文章

  1. Python爬虫常用小技巧之设置代理IP

    设置代理IP的原因 我们在使用Python爬虫爬取一个网站时,通常会频繁访问该网站.假如一个网站它会检测某一段时间某个IP的访问次数,如果访问次数过多,它会禁止你的访问.所以你可以设置一些代理服务器来 ...

  2. 爬虫-Python爬虫常用库

    一.常用库 1.requests 做请求的时候用到. requests.get("url") 2.selenium 自动化会用到. 3.lxml 4.beautifulsoup 5 ...

  3. python爬虫常用第三方库

    这个列表包含与网页抓取和数据处理的Python库 网络 通用 urllib -网络库(stdlib). requests -网络库. grab – 网络库(基于pycurl). pycurl – 网络 ...

  4. 芝麻HTTP: Python爬虫利器之PyQuery的用法

    前言 你是否觉得 XPath 的用法多少有点晦涩难记呢? 你是否觉得 BeautifulSoup 的语法多少有些悭吝难懂呢? 你是否甚至还在苦苦研究正则表达式却因为少些了一个点而抓狂呢? 你是否已经有 ...

  5. Python 爬虫常用的库

    一.常用库 1.requests 做请求的时候用到. requests.get("url") 2.selenium 自动化会用到. 3.lxml 4.beautifulsoup 5 ...

  6. 【Python爬虫】安装 pyQuery 遇到的坑 Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?

    windows 64位操作系统下,用 Python 抓取网页,并用 pyQuery 解析网页 pyQuery是jQuery在python中的实现,能够以jQuery的语法来操作解析HTML文档,十分方 ...

  7. Python爬虫常用之HtmlParser

    HtmlParser,顾名思义,是解析Html的一个工具.python自带的. 一.常用属性和方法介绍 HtmlParser是一个类,在使用时一般继承它然后重载它的方法,来达到解析出需要的数据的目的. ...

  8. Python爬虫常用库安装

    建议更换pip源到国内镜像,下载会快很多:https://www.cnblogs.com/believepd/p/10499844.html requests pip3 install request ...

  9. python爬虫常用库和安装 -- windows7环境

    1:urllib  python自带 2:re      python自带 3:requests     pip install requests 4:selenium      需要依赖chrome ...

随机推荐

  1. input 框提示信息

    给input添加提示信息,只需添加 “placeholder”的class,将提示信息放在value中, 其中“placeholder”的名字是随便取的,不是H5的“placeholder”属性 例子 ...

  2. linux 首次登陆与线上求助

    开始下达指令概念 上述指令详细说明如下:1. 一行指令中第一个输入的部分绝对是『指令(command)』或『可执行文件案(例如批次脚本,script)』2. command 为指令的名称,例如变换工作 ...

  3. Mac10.9下的libtiff编译

    libtiff介绍 libtiff下载 libtiff编译 libtiff介绍? 参考:http://en.wikipedia.org/wiki/Tiff libtiff下载 直接到官网下载:http ...

  4. Linq学习<一>

    lambda查询语法: var result =arrarylist.where(n=>n.contains("l"))  简化的委托方法实例 linq查询结构: var  ...

  5. Android Hander、Looper、Message三者之间的联系

    1.首先Looper.prepare()在本线程中保存一个Looper实例,然后该实例中保存一个MessageQueue对象:因为Looper.prepare()在一个线程中只能调用一次,所以Mess ...

  6. 20145218张晓涵 PC平台逆向破解_advanced

    ---恢复内容开始--- 20145218张晓涵 PC平台逆向破解_advanced shellcode注入 基础知识 shellcode就是在利用溢出攻击溢出时要值入的代码,也就是溢出后去执行的代码 ...

  7. spring的一些配置和重要的接口和类

    spring的配置文件 通常是applicationContext.xml(具体的bean配置会在后面内容中详解) setter方法注入: <property name=“” value=“ja ...

  8. [日常]无线鼠标滚动缩放EXCEL表时,缩放比例过大问题

    这也是一个奇葩问题,解决方法: 把USB接收器拔掉重新插上,效果拔群

  9. 变量声明和定义的关系------c++ primer

    为了允许把程序分成多个逻辑部分来编写,c++语言支持分离式编译机制 为了支持分离式编译,c++语言把声明和定义区分开来.声明(declaration)使得名字为程序所知,一个文件如果想使用别处定义的名 ...

  10. php CI框架 使用PDO 的连接配置

    $db['default'] = array( 'dsn' => 'mysql:dbname=hejun;host=192.168.137.127', //'hostname' => '' ...