爬虫神器之 PyQuery 实用教程(一)

2023-10-24 11:32

本文主要是介绍爬虫神器之 PyQuery 实用教程(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

爬虫神器之 PyQuery 实用教程(一)

前言

今年 5 月份的时候,后台有小伙伴留言,询问过 PyQuery 的用法,当时没怎么接触过 PyQuery ,只是大致看了下官方文档,了解到它与我们常用的 BeautifulSoup 库相似。也是作为提取网页源代码的一款好用 Python 模块。

最近在研究 PySpider 框架,一个国人写的好用框架,其中在提取网页节点元素的时候,可以利用 PyQuery 来高效使用。

今天就来的介绍下关于 PyQuery 的一些实用方法。

安装及详情介绍

开始之前,先要安装下第三方库。

pip install pyquery

来看下官方定义:

pyquery allows you to make jquery queries on xml documents. The API is as much as possible the similar to jquery. pyquery uses lxml for fast xml and html manipulation.

PyQuery官方文档

大致意思:PyQuery 允许你在 xml 文档结构去进行 jQuery 的语法查询。它的 api 使用方法与 jQuery 相似度很高。

看完官网后,再结合名字,但凡是接触过前端的同学,一定可以联想到jQuery,这里在普及下 jQuery。

jQuery是一个快速、简洁的JavaScript框架。它的本身语法可以非常简洁的提取到 HTML 元素的节点。

而 PyQuery 则是 Python 仿照 jQuery 来实现的。熟悉 jQuery 的同学,再去学习 PyQuery 简直 so easy。

实战环境准备

废话不多说,直接开始搞实战。

刚经历七天小长假,就以"穷游网"为例,来用它讲解下 PyQuery 如何获取页面的元素节点。

打开穷游网,随便选了个地点,以"日本"为例。

https://place.qyer.com/japan/citylist-0-0-1/
穷游网

可以看到上图中,列出了日本全部城市以及区域。爬它!

PyQuery获取原网页代码

PyQuery 内置提供了一个方法,可以直接对网页进行模拟请求。

from pyquery import PyQuery as pq
doc = pq(url='https://place.qyer.com/japan/citylist-0-0-1/')

导入 PyQuery 并且命名为 pq。为了命名简短,所以调用使用 pq 来操作。当参数指定为 url 时,pq 底层封装了请求网址的动作。

doc = pq(url='https://place.qyer.com/japan/citylist-0-0-1/')

上述代码的底层执行机制,类似于这样:

url = 'https://place.qyer.com/japan/citylist-0-0-1/'
doc = pq(requests.get(url).text)

让我们来改写代码打印下,看看 doc 得到的内容,以及它的类型是什么:

from pyquery import PyQuery as pq
def spider_travel():doc = pq(url='https://place.qyer.com/japan/citylist-0-0-1/')print(doc)print(type(doc))
spider_travel()

结果:

doc打印的结果,大家可以看到,是将 HTML 源代码以文本的形式返回了。而 doc 的类型,则是 PyQuery 。

后续想从 HTML 源码中提取我们想要的内容,都需要此类来进行操作。也就是通过 doc 变量来进行操作,提取。

总结

好了,简单的回顾下。

上面介绍了 PyQuery 库的用途以及如何对一个网站发起请求,以及它最重要的类。下一篇重点介绍如何提取元素节点。

这篇关于爬虫神器之 PyQuery 实用教程(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/274867

相关文章

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

IDEA中的Kafka管理神器详解

《IDEA中的Kafka管理神器详解》这款基于IDEA插件实现的Kafka管理工具,能够在本地IDE环境中直接运行,简化了设置流程,为开发者提供了更加紧密集成、高效且直观的Kafka操作体验... 目录免安装:IDEA中的Kafka管理神器!简介安装必要的插件创建 Kafka 连接第一步:创建连接第二步:选

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

Golang 网络爬虫框架gocolly/colly(五)

gcocolly+goquery可以非常好地抓取HTML页面中的数据,但碰到页面是由Javascript动态生成时,用goquery就显得捉襟见肘了。解决方法有很多种: 一,最笨拙但有效的方法是字符串处理,go语言string底层对应字节数组,复制任何长度的字符串的开销都很低廉,搜索性能比较高; 二,利用正则表达式,要提取的数据往往有明显的特征,所以正则表达式写起来比较简单,不必非常严谨; 三,使

Golang网络爬虫框架gocolly/colly(四)

爬虫靠演技,表演得越像浏览器,抓取数据越容易,这是我多年爬虫经验的感悟。回顾下个人的爬虫经历,共分三个阶段:第一阶段,09年左右开始接触爬虫,那时由于项目需要,要访问各大国际社交网站,Facebook,myspace,filcker,youtube等等,国际上叫得上名字的社交网站都爬过,大部分网站提供restful api,有些功能没有api,就只能用http抓包工具分析协议,自己爬;国内的优酷、

Golang网络爬虫框架gocolly/colly(三)

熟悉了《Golang 网络爬虫框架gocolly/colly 一》和《Golang 网络爬虫框架gocolly/colly 二》之后就可以在网络上爬取大部分数据了。本文接下来将爬取中证指数有限公司提供的行业市盈率。(http://www.csindex.com.cn/zh-CN/downloads/industry-price-earnings-ratio) 定义数据结构体: type Zhj

014.Python爬虫系列_解析练习

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈 优

urllib与requests爬虫简介

urllib与requests爬虫简介 – 潘登同学的爬虫笔记 文章目录 urllib与requests爬虫简介 -- 潘登同学的爬虫笔记第一个爬虫程序 urllib的基本使用Request对象的使用urllib发送get请求实战-喜马拉雅网站 urllib发送post请求 动态页面获取数据请求 SSL证书验证伪装自己的爬虫-请求头 urllib的底层原理伪装自己的爬虫-设置代理爬虫coo