pyquery

这个模块基本是仿JQuery的形式,也支持CSS选择器语法,因此对于爬虫来说,避免了正则表达式的滥用。

创建对象

from pyquery import PyQuery as pq

d = pq("<html></html>")

d = pq(url='http://google.com/')

d = pq(filename=path_to_html_file)

既可以通过HTML文档字串创建对象,也可以直接使用url(内部调用了urllib等模块,因此可以直接接发请求),又或者使用已下载的文件(对于缓存文件来说比较适用)。

由于使用缓存文件可能会报编码错误,因此可以修改源代码216行,增加encoding='utf-8'参数。

选择器

对象直接调用对应标签、class、id即可。

当要找出所有a标签的href属性时,可用如下方法。

import os

from pyquery import PyQuery as pq

e = pq(url='http://www.google.com')

gen = e('a').items()

for link in gen:
    print(link.attr.href)

其它的还有find、children、parent、parents、siblings方法,用法与JQuery一样。

获取属性

  • PyQuery

    • attr

      • href
    • text()
    • html()

DOM操作

  • PyQuery

    • removeClass() # 删除对应class标签
    • addClass() # 增加
    • attr('name', 'attr') # 增加属性
    • css('color', 'white') # 增加css
    • remove() # 删除指定标签

pyquery模块的更多相关文章

  1. 爬虫学习笔记(六)PyQuery模块

    PyQuery模块也是一个解析html的一个模块,它和Beautiful Soup用起来差不多,它是jquery实现的,和jquery语法差不多,会用jquery的人用起来就比较方便了. Pyquer ...

  2. Python模块之requests,urllib和re

    目录 一.爬虫的步骤 二.使用Jupyter 三.爬虫请求模块之urllib 四.爬虫请求模块之requests 五.爬虫分析之re模块 一.爬虫的步骤 1.发起请求,模拟浏览器发送一个http请求 ...

  3. 爬虫之 selenium模块

    selenium模块   阅读目录 一 介绍 二 安装 三 基本使用 四 选择器 五 等待元素被加载 六 元素交互操作 七 其他 八 项目练习 一 介绍 selenium最初是一个自动化测试工具,而爬 ...

  4. JuPyter(IPython) Notebook中通过pip安装第三方Python Module

    JuPyter(IPython) Notebooks中使用pip安装Python的模块 刚开始接触JuPyter Notebook的时候觉得这是个不错的写技术博客的工具,可以很直观的把代码和结果结合在 ...

  5. 关于js渲染网页时爬取数据的思路和全过程(附源码)

    于js渲染网页时爬取数据的思路 首先可以先去用requests库访问url来测试一下能不能拿到数据,如果能拿到那么就是一个普通的网页,如果出现403类的错误代码可以在requests.get()方法里 ...

  6. Python爬虫入门 之 如何在豆瓣中获取自己喜欢的TOP N电影信息

    什么是爬虫 按照一定规则自动的获取互联网上的信息(如何快速有效的利用互联网上的大量信息) 爬虫的应用 搜索引擎(Google.百度.Bing等搜索引擎,辅助人们检索信息) 股票软件(爬取股票数据,帮助 ...

  7. 怎么将ETL技术落地

    ETL概述 ETL(Extraction-Transformation-Loading)是将业务系统的数据经过抽取.清洗转换之后加载到数据仓库的过程,目的是将企业中的分散.零乱.标准不统一的数据整合到 ...

  8. Python爬虫系列之爬取美团美食板块商家数据(二)

    今天为大家重写一个美团美食板块小爬虫,说不定哪天做旅游攻略的时候也可以用下呢.废话不多说,让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: requests模块: argpar ...

  9. python爬虫---字体反爬

    目标地址:http://glidedsky.com/level/web/crawler-font-puzzle-1 打开google调试工具检查发现网页上和源码之中的数字不一样, 已经确认该题目为 字 ...

随机推荐

  1. Github与Eclipse连接(方法2成功:Pleiades)

    2018-3-7 第1次尝试 主要参考这位大神的笔记:http://blog.csdn.net/zhangdaiscott/article/details/16939165 方法非常简单,从官网htt ...

  2. d3 svg简单学习

    矩形 <rect x="/> 圆形 <circle cx="/> 椭圆 <ellipse cx="/> 线 <line x1=& ...

  3. cogs2060 除法表达式

    http://blog.csdn.net/sdfzyhx/article/details/52254071 作为分母的数当然是越少越好.将x2作为分母,其他作为分子,不断约分,最后判断. /*by S ...

  4. 【kindeditor】kindeditor的使用

    官网:http://kindeditor.net/demo.php 效果:

  5. spring版本不兼容JDK问题

    在实验书上Spring项目的时候出现一个问题,导入包和使用注释的时候eclipse出现报错. 导入包报错:The import org cannot be resolved 注释报错:componen ...

  6. Anaconda环境搭建

    最近要使用Anaconda做一些机器视觉相关的开发,在此记录下Anaconda的搭建 首先去官网下载 这里我选择windows平台 由于浏览器自己下载的过慢,我这里选择用迅雷下载 没python就把那 ...

  7. spring ConfigurableListableBeanFactory 接口

    接口继承关系如上图. ConfigurableListableBeanFactory具体: 1.2个忽略自动装配的的方法. 2.1个注册一个可分解依赖的方法. 3.1个判断指定的Bean是否有资格作为 ...

  8. 多核服务器的JVM优化选项(转载)

    原文链接 现在多核CPU是主流.利用多核技术,可以有效发挥硬件的能力,提升吞吐量,对于Java程序,可以实现并发垃圾收集.但是Java利用多核技术也带来了一些问题,主要是多线程共享内存引起了.目前内存 ...

  9. open-falcon的邮件报警

    mail-provider提供http邮件服务,和邮件服务器打通 falcon-sender 负责收集falcon的邮件,然后通过mail-provider发送出去 mail-provider 把sm ...

  10. System::String *,char*,string 等的类型转换 [转]

    在VC 的编程中,经常会用到各种类型的转换,在MFC中textbox等控件得到的返回类型是System::String *,而写入的文件要求是 const char *类型的,下面介绍一些转换的方法: ...