爬虫神器之 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

相关文章

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

以后写代码都是AI自动写了,Cursor+Claude-3.5-Sonnet,Karpathy 点赞的 AI 代码神器。如何使用详细教程

Cursor 情况简介 AI 大神 Andrej Karpathy 都被震惊了!他最近在试用 VS Code Cursor +Claude Sonnet 3.5,结果发现这玩意儿比 GitHub Copilot 还好用! Cursor 在短短时间内迅速成为程序员群体的顶流神器,其背后的原因在于其默认使用 OpenAI 投资的 Claude-3.5-Sonnet 模型,这一举动不仅改变了代码生成

OBItools:Linux下的DNA条形码分析神器

在生物信息学领域,DNA条形码分析是一种非常常见的研究方法,用于物种鉴定、生态学和进化生物学研究。今天要介绍的工具就是专为此设计的——OBItools。这个工具集专门用于处理生态学和进化生物学中的DNA条形码数据,在Linux环境下运行。无论你是本科生还是刚入门的科研人员,OBItools都能为你提供可靠的帮助。 OBItools的功能亮点 OBItools是一个强大的工具包,特别适合DNA条形

Python 爬虫入门 - 基础数据采集

Python网络爬虫是一种强大且灵活的工具,用于从互联网上自动化地获取和处理数据。无论你是数据科学家、市场分析师,还是一个想要深入了解互联网数据的开发者,掌握网络爬虫技术都将为你打开一扇通向丰富数据资源的大门。 在本教程中,我们将从基本概念入手,逐步深入了解如何构建和优化网络爬虫,涵盖从发送请求、解析网页结构到保存数据的全过程,并讨论如何应对常见的反爬虫机制。通过本教程,你将能够构建有效的网络爬