- 浏览: 3431202 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
比urllib好用的requests http://www.bsdmap.com/2013/01/13/python-requests/
更多见官方文档:
http://docs.python-requests.org/en/latest/user/quickstart/
http://docs.python-requests.org/en/latest/user/advanced/#advanced
比urllib好用的requests
Python标准库里提供了httplib以及urllib、urllib2,但是学习了好几次,都没有记住(下的功夫不够)。今天崔推荐了一个requests库,看了一下样例,几乎立即就会使用了,所以推荐给大家。
看官方是怎么描述这种情况的:
“Python’s standard urllib2 module provides most of the HTTP capabilities you need, but the API is thoroughly broken. It was built for a different time — and a different web. It requires an enormous amount of work (even method overrides) to perform the simplest of tasks.
Things shouldn’t be this way. Not in Python.”
http://docs.python-requests.org/en/latest/
可见urllib2确实不太容易使用。
常用功能罗列如下,以便查询。
# 0. 认证、状态码、header、编码、json
# 1. 发起请求
# 2. 通过URL传递参数
# 3. 返回内容
# 4. 二进制内容
# 5. JSON
# 6. 超时
# 7. 自定义header
pyquery: 基于python和jquery语法操作XML
http://geoinformatics.cn/lab/pyquery/
Python学习笔记—PyQuery库的使用总结 http://newliu.com/post/18/
Python中PyQuery安装 http://thend.blog.163.com/blog/static/218973116201349112855661/
Linux下安装Pyquery方法 http://blog.xmaoseo.com/451.html
可以使用yumex安装pyquery
一、简介
pyquery库是jQuery的Python实现,可以用于解析HTML网页内容,我个人写过的一些抓取网页数据的脚本就是用它来解析html获取数据的。他的官方文档地址是:http://packages.python.org/pyquery/。今天重新看了一遍整个文档,把它的一些使用方法整理了一下,做个记录。
二、使用方法
from pyquery import PyQuery as pq
1.可加载一段HTML字符串,或一个HTML文件,或是一个url地址,例:
注意:此处url似乎必须写全
2.html()和text() ——获取相应的HTML块或文本块,例:
3.根据HTML标签来获取元素,例:
注意:当获取到的元素不只一个时,html()、text()方法只返回首个元素的相应内容块
4.eq(index) ——根据给定的索引号得到指定元素
接上例,若想得到第二个p标签内的内容,则可以:
5.filter() ——根据类名、id名得到指定元素,例:
6.find() ——查找嵌套元素,例:
7.直接根据类名、id名获取元素,例:
8.获取属性值,例:
9.修改属性值,例:
把href属性修改为了baidu
10.addClass(value) ——为元素添加类,例:
11.hasClass(name) #返回判断元素是否包含给定的类,例:
12.children(selector=None) ——获取子元素,例:
13.parents(selector=None)——获取父元素,例:
14.clone() ——返回一个节点的拷贝
15.empty() ——移除节点内容
16.nextAll(selector=None) ——返回后面全部的元素块,例:
d=pq("<p id='1'>hello</p><p id='2'>world</p><img scr='' />")
17.not_(selector) ——返回不匹配选择器的元素,例:
pyquery还有其他一些用法,这里没有一一整理出来,更多更全的方法可以直接去看它的文档。
更多见官方文档:
http://docs.python-requests.org/en/latest/user/quickstart/
http://docs.python-requests.org/en/latest/user/advanced/#advanced
比urllib好用的requests
Python标准库里提供了httplib以及urllib、urllib2,但是学习了好几次,都没有记住(下的功夫不够)。今天崔推荐了一个requests库,看了一下样例,几乎立即就会使用了,所以推荐给大家。
看官方是怎么描述这种情况的:
“Python’s standard urllib2 module provides most of the HTTP capabilities you need, but the API is thoroughly broken. It was built for a different time — and a different web. It requires an enormous amount of work (even method overrides) to perform the simplest of tasks.
Things shouldn’t be this way. Not in Python.”
http://docs.python-requests.org/en/latest/
可见urllib2确实不太容易使用。
常用功能罗列如下,以便查询。
# 0. 认证、状态码、header、编码、json
>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass')) >>> r.status_code 200 >>> r.headers['content-type'] 'application/json; charset=utf8' >>> r.encoding 'utf-8' >>> r.text u'{"type":"User"...' >>> r.json() {u'private_gists': 419, u'total_private_repos': 77, ...}
# 1. 发起请求
import requests URL="http://www.bsdmap.com/" r = requests.get(URL) r = requests.post(URL) r = requests.put(URL) r = requests.delete(URL) r = requests.head(URL) r = requests.options(URL)
# 2. 通过URL传递参数
>>> payload = {'key1': 'value1', 'key2': 'value2'} >>> r = requests.get("http://httpbin.org/get", params=payload) >>> print r.url u'http://httpbin.org/get?key2=value2&key1=value1'
# 3. 返回内容
>>> import requests >>> r = requests.get('https://github.com/timeline.json') >>> r.text '[{"repository":{"open_issues":0,"url":"https://github.com/... >>> r.encoding 'utf-8' >>> r.encoding = 'ISO-8859-1'
# 4. 二进制内容
You can also access the response body as bytes, for non-text requests: >>> r.content b'[{"repository":{"open_issues":0,"url":"https://github.com/... The gzip and deflate transfer-encodings are automatically decoded for you. For example, to create an image from binary data returned by a request, ou can use the following code: >>> from PIL import Image >>> from StringIO import StringIO >>> i = Image.open(StringIO(r.content))
# 5. JSON
>>> import requests >>> r = requests.get('https://github.com/timeline.json') >>> r.json() [{u'repository': {u'open_issues': 0, u'url': 'https://github.com/...
# 6. 超时
>>> requests.get('http://github.com', timeout=0.001)
# 7. 自定义header
>>> import json >>> url = 'https://api.github.com/some/endpoint' >>> payload = {'some': 'data'} >>> headers = {'content-type': 'application/json'} >>> r = requests.post(url, data=json.dumps(payload), headers=headers)
pyquery: 基于python和jquery语法操作XML
http://geoinformatics.cn/lab/pyquery/
Python学习笔记—PyQuery库的使用总结 http://newliu.com/post/18/
Python中PyQuery安装 http://thend.blog.163.com/blog/static/218973116201349112855661/
Linux下安装Pyquery方法 http://blog.xmaoseo.com/451.html
可以使用yumex安装pyquery
一、简介
pyquery库是jQuery的Python实现,可以用于解析HTML网页内容,我个人写过的一些抓取网页数据的脚本就是用它来解析html获取数据的。他的官方文档地址是:http://packages.python.org/pyquery/。今天重新看了一遍整个文档,把它的一些使用方法整理了一下,做个记录。
二、使用方法
from pyquery import PyQuery as pq
1.可加载一段HTML字符串,或一个HTML文件,或是一个url地址,例:
d=pq("<html><title>hello</title></html>") d=pq(filename=path_to_html_file) d=pq(url='http://www.baidu.com')
注意:此处url似乎必须写全
2.html()和text() ——获取相应的HTML块或文本块,例:
p=pq("<head><title>hello</title></head>") p('head').html()#返回<title>hello</title> p('head').text()#返回hello
3.根据HTML标签来获取元素,例:
d=pq('<div><p>test 1</p><p>test 2</p></div>') d('p')#返回[<p>,<p>] print d('p')#返回<p>test 1</p><p>test 2</p> print d('p').html()#返回test 1
注意:当获取到的元素不只一个时,html()、text()方法只返回首个元素的相应内容块
4.eq(index) ——根据给定的索引号得到指定元素
接上例,若想得到第二个p标签内的内容,则可以:
print d('p').eq(1).html() #返回test 2
5.filter() ——根据类名、id名得到指定元素,例:
d=pq("<div><p id='1'>test 1</p><p class='2'>test 2</p></div>") d('p').filter('#1') #返回[<p#1>] d('p').filter('.2') #返回[<p.2>]
6.find() ——查找嵌套元素,例:
d=pq("<div><p id='1'>test 1</p><p class='2'>test 2</p></div>") d('div').find('p')#返回[<p#1>, <p.2>] d('div').find('p').eq(0)#返回[<p#1>]
7.直接根据类名、id名获取元素,例:
d=pq("<div><p id='1'>test 1</p><p class='2'>test 2</p></div>") d('#1').html()#返回test 1 d('.2').html()#返回test 2
8.获取属性值,例:
d=pq("<p id='my_id'><a href='http://hello.com'>hello</a></p>") d('a').attr('href')#返回http://hello.com d('p').attr('id')#返回my_id
9.修改属性值,例:
d('a').attr('href', 'http://baidu.com')
把href属性修改为了baidu
10.addClass(value) ——为元素添加类,例:
d=pq('<div></div>') d.addClass('my_class')#返回[<div.my_class>]
11.hasClass(name) #返回判断元素是否包含给定的类,例:
d=pq("<div class='my_class'></div>") d.hasClass('my_class')#返回True
12.children(selector=None) ——获取子元素,例:
d=pq("<span><p id='1'>hello</p><p id='2'>world</p></span>") d.children()#返回[<p#1>, <p#2>] d.children('#2')#返回[<p#2>]
13.parents(selector=None)——获取父元素,例:
d=pq("<span><p id='1'>hello</p><p id='2'>world</p></span>") d('p').parents()#返回[<span>] d('#1').parents('span')#返回[<span>] d('#1').parents('p')#返回[]
14.clone() ——返回一个节点的拷贝
15.empty() ——移除节点内容
16.nextAll(selector=None) ——返回后面全部的元素块,例:
d=pq("<p id='1'>hello</p><p id='2'>world</p><img scr='' />")
d('p:first').nextAll()#返回[<p#2>, <img>] d('p:last').nextAll()#返回[<img>]
17.not_(selector) ——返回不匹配选择器的元素,例:
d=pq("<p id='1'>test 1</p><p id='2'>test 2</p>") d('p').not_('#2')#返回[<p#1>]
pyquery还有其他一些用法,这里没有一一整理出来,更多更全的方法可以直接去看它的文档。
发表评论
-
Htmlunit使用
2015-04-11 20:12 1100http://my.oschina.net/u/852445/ ... -
垂直爬虫 webmagic
2014-09-05 20:24 3040新版文档地址 http://webmagic.io/docs/ ... -
python Tkinter的一些记录
2013-10-14 11:06 17961. Label里面的文本对齐方式:http://www.hi ... -
Python中执行外部命令并捕获双向输出
2013-10-12 15:08 2435原文:http://my.oschina.net/qihh/b ... -
python: 界面开发Tkinter
2013-10-10 16:38 1681python GUI开发 工具选择 http://blog.c ... -
Python多线程学习
2013-10-08 09:39 1451http://www.cnblogs.com/tqsummer ... -
问题: Max retries exceeded with url
2013-10-07 11:36 29417解决一: http://stackoverflow.com/q ... -
python + request + lxml的几个例子
2013-10-06 22:09 4485例子没有加入失败后重做的功能,这个也可以考虑增加。 第三个例子 ... -
python对文件的创建等处理
2013-10-06 21:24 1177http://www.qttc.net/201209207.h ... -
python: json,base64 的使用
2013-10-06 19:12 2988JSON 1. import json 2. json.dum ... -
python requests 下载图片和数据库读取
2013-10-02 15:56 18568python requests 下载图片 de ... -
python类型转换
2013-10-01 14:12 1070http://jayzotion.iteye.com/blog ... -
python字符串编码判断
2013-09-30 14:13 2225Python 字符编码判断 http://blog.sina. ... -
Python:数组、列表(list)、字典(dict)、字符串(string)常用基本操作小结
2013-09-30 13:07 13712连接 list 与分割字符串h ... -
Python模块学习 ---- datetime
2013-09-30 09:39 2215[Python Tip]如何计算时间 ... -
python html parser库lxml的介绍和使用
2013-09-30 09:39 7418使用由 Python 编写的 lxml 实现高性能 XML 解 ... -
用Python操作Mysql和中文问题
2013-09-29 13:55 2645http://www.iteye.com/topic/5730 ... -
Python 字符串操作(截取/替换/查找/分割)
2013-09-29 13:01 6230python字符串连接 先介绍下效率比较低的,有些新手朋友就会 ... -
Python中使用中文
2013-09-29 10:25 1156http://blog.csdn.net/kernelspir ... -
Beautiful Soup 中文教程
2013-09-29 09:36 2797http://www.pythonclub.org/modul ...
相关推荐
本框架使用 Python+Requests pytest 、allure 搭建,并使用数据驱动模式执行 适用人群: 接口测试工程师:对于专注于接口测试的工程师来说,这个框架提供了一种灵活且功能强大的方式来执行接口测试。通过使用 Python...
python+django+mysql电影推荐系统源码,毕业设计 python+django+mysql电影推荐系统源码,毕业设计 python+django+mysql电影推荐系统源码,毕业设计 python+django+mysql电影推荐系统源码,毕业设计 python+...
学生信息管理系统(python+GUI+mysql).zip,学生信息管理系统(python+GUI+mysql).zip,学生信息管理系统(python+GUI+mysql).zip 学生信息管理系统(python+GUI+mysql).zip,学生信息管理系统(python+GUI+mysql).zip,...
python+Django+layui实现婚庆系统源码 python+Django+layui实现婚庆系统源码 python+Django+layui实现婚庆系统源码 python+Django+layui实现婚庆系统源码 python+Django+layui实现婚庆系统源码 python+...
python实现接口自动化测试: 1、测试框架:python+unittest+requests+ddt数据驱动 2、测试用例维护在excle 3、支持post方法、get方法等 4、支持测试报告结果发送至qq邮箱
适合新手,图书馆管理系统Python+MySQL+tkinter图形化界面+数据库+源码(注释详细) 适合新手,图书馆管理系统Python+MySQL+tkinter图形化界面+数据库+源码(注释详细) 适合新手,图书馆管理系统Python+MySQL+...
Django + python + mysql的在线考试系统源码 Django + python + mysql的在线考试系统源码 Django + python + mysql的在线考试系统源码 Django + python + mysql的在线考试系统源码 Django + python + mysql的...
Python+Flask+MySQL实现的学生培养计划管理系统【源码】Python+Flask+MySQL实现的学生培养计划管理系统【源码】Python+Flask+MySQL实现的学生培养计划管理系统【源码】Python+Flask+MySQL实现的学生培养计划管理系统...
标题 "Python+Requests+PyTest+Excel+Allure+sendMail" 描述的是一个使用Python进行接口自动化测试的综合实践项目。在这个项目中,开发者利用了一系列的Python库和技术,包括Requests库来发送HTTP请求,PyTest作为...
python管理系统(python+mysql)代码.zipPython管理系统(python+mysql)代码.zipPython管理系统(python+mysql)代码.zipPython管理系统(python+mysql)代码.zipPython管理系统(python+mysql)代码.zipPython管理...
基于python+vue知识图谱的智能旅游推荐系统.zip基于python+vue知识图谱的智能旅游推荐系统.zip基于python+vue知识图谱的智能旅游推荐系统.zip基于python+vue知识图谱的智能旅游推荐系统.zip基于python+vue知识图谱的...
课程设计Python+SQLServer实现疫情医疗信息管理系统源码课程设计Python+SQLServer实现疫情医疗信息管理系统源码课程设计Python+SQLServer实现疫情医疗信息管理系统源码课程设计Python+SQLServer实现疫情医疗信息管理...
1、基于vue+python+flask+uwsgi+nginx+mysql的外包项目网站项目源码.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为...
基于python+vue知识图谱的智能旅游推荐系统源码+文档简介.zip个人经导师指导并认可通过的高分设计项目,评审分98分。主要针对计算机相关专业的正在做大作业的学生和需要项目实战练习的学习者,可作为课程设计、期末...
基于Python+flask+echarts实现的天气展示系统源码.zip基于Python+flask+echarts实现的天气展示系统源码.zip基于Python+flask+echarts实现的天气展示系统源码.zip基于Python+flask+echarts实现的天气展示系统源码.zip...
Python+Vue+Django前后端分离的学习学生管理系统源码 Python+Vue+Django前后端分离的学习学生管理系统源码 Python+Vue+Django前后端分离的学习学生管理系统源码 Python+Vue+Django前后端分离的学习学生管理...
基于python+django学生信息管理系统设计与实现(含程序源码和毕业设计),基于python+django学生信息管理系统设计与实现(含程序源码和毕业设计),基于python+django学生信息管理系统设计与实现(含程序源码和毕业设计)...
在实际使用这个框架时,首先需要安装所有依赖库,然后根据yaml文件配置测试数据,编写测试脚本来调用接口并验证响应。最后,运行pytest命令,allure会自动生成测试报告,提供对测试结果的全面视图。 这个框架的构建...
Python + Django 搭建的一个生鲜店源码 Python + Django 搭建的一个生鲜店源码 Python + Django 搭建的一个生鲜店源码 Python + Django 搭建的一个生鲜店源码 Python + Django 搭建的一个生鲜店源码 Python + ...
基于人脸识别的门禁管理系统源码(Python+Django) 基于人脸识别的门禁管理系统源码(Python+Django) 基于人脸识别的门禁管理系统源码(Python+Django) 基于人脸识别的门禁管理系统源码(Python+Django) 基于...