[关闭]
@qinian 2018-07-22T07:27:37.000000Z 字数 1273 阅读 915

PyQuery库学习

爬虫


pyquery:一个类似jquery的python库

pyquery允许您在xml文档上进行jquery查询。API尽可能与jquery类似。pyquery使用lxml进行快速xmlhtml操作。参考:手册

1、初始化处理

  1. html = '''
  2. <div id="wrap">
  3. <ul class="s_from">
  4. asdasd
  5. <link href="http://asda.com">asdadasdad12312</link>
  6. <link href="http://asda1.com">asdadasdad12312</link>
  7. <link href="http://asda2.com">asdadasdad12312</link>
  8. </ul>
  9. </div>
  10. '''
  1. from pyquery import PyQuery as pq
  2. from lxml import etree
  3. #传html,传url,传文件。
  4. doc = pq(html)
  5. doc = pq(url = 'http://www.baidu.com')
  6. doc = pq(friename = 'demo.html')

2、基本操作

1、查找子节点,父节点,兄弟节点

  1. items=doc("#wrap") #定位到这个id标签
  2. link = items.find('.s_from') # 找到items里面这个节点
  3. link = items.children() #找到items里面所有节点。
  4. link = items.children('link') #所有节点再找到link点
  5. items=doc(".s_from") #父节点
  6. parent_href=items.parent() #一个父节点
  7. parent_href=items.parents()#所有父节点
  8. siblings_href=items.siblings()
  9. siblings_href=items.siblings(’id') #找到兄弟节点中有这个标签的
  10. print(doc('#container .list li')) #查找id为container里面的class为list的li标签

2、节点的遍历

  1. list = doc("link").items()
  2. for lt in list:
  3. print(lt)
  4. 带有items属性的节点可以循环

3、获取节点属性,文本,标签中html代码

  1. its=doc("link").items()
  2. for it in its:
  3. print(it.attr('href')) # attr属性值
  4. print(it.attr.href)
  5. its=doc("link").items()
  6. for it in its:
  7. print(it.text())
  8. its=doc("link").items()
  9. for it in its:
  10. print(it.html())

4、DO操作

  1. .addClass(value):添加标签
  2. .removerClass(value):移除标签
  3. .hasClass(name):判断是否包含指定的 class,返回 True False

5、伪类选择器

较少用到

参考:PYTHON PYQUERY 基本用法/神经质的狗

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注