Python CSS选择器爬取京东网商品信息过程解析
作者:dcpeng 发布时间:2022-01-17 21:18:17
CSS选择器
目前,除了官方文档之外,市面上及网络详细介绍BeautifulSoup使用的技术书籍和博客软文并不多,而在这仅有的资料中介绍CSS选择器的少之又少。在网络爬虫的页面解析中,CCS选择器实际上是一把效率甚高的利器。虽然资料不多,但官方文档却十分详细,然而美中不足的是需要一定的基础才能看懂,而且没有小而精的演示实例。
京东商品图
首先进入京东网,输入自己想要查询的商品,向服务器发送网页请求。在这里小编仍以关键词“狗粮”作为搜索对象,之后得到后面这一串网址:
https://search.jd.com/Search?keyword=%E7%8B%97%E7%B2%AE&enc=utf-8,其中参数的意思就是我们输入的keyword,在本例中该参数代表“狗粮”,具体详情可以参考Python大神用正则表达式教你搞定京东商品信息。所以,只要输入keyword这个参数之后,将其进行编码,就可以获取到目标URL。之后请求网页,得到响应,尔后利用CSS选择器进行下一步的数据采集。
商品信息在京东官网上的部分网页源码如下图所示:
部分网页源码
仔细观察源码,可以发现我们所需的目标信息在红色框框的下面,那么接下来我们就要一层一层的去获取想要的信息。
在Python的urllib库中提供了quote方法,可以实现对URL的字符串进行编码,从而可以进入到对应的网页中去。
CSS选择器在线复制
很多小伙伴都觉得CSS表达式很难写,其实掌握了基本的用法也就不难了。在线复制CSS表达式如上图所示,可以很方便的复制CSS表达式。但是通过该方法得到的CSS表达式放在程序中一般不能用,而且长的没法看。所以CSS表达式一般还是要自己亲自上手。
直接上代码,利用CSS去提取目标信息,如商品的名字、链接、图片和价格,具体的代码如下图所示:
代码实现
如果你想快速的实现功能更强大的网络爬虫,那么BeautifulSoupCSS选择器将是你必备的利器之一。BeautifulSoup整合了CSS选择器的语法和自身方便使用API。在网络爬虫的开发过程中,对于熟悉CSS选择器语法的人,使用CSS选择器是个非常方便的方法。
最后得到的效果图如下所示:
最终效果图
新鲜的狗粮再一次出炉咯~~~
CSS选择器
关于CSS选择器的简单介绍:
BeautifulSoup支持大部分的CSS选择器。其语法为:向tag对象或BeautifulSoup对象的.select()方法中传入字符串参数,选择的结果以列表形式返回,即返回类型为list。
tag.select("string")
BeautifulSoup.select("string")
注意:在取得含有特定CSS属性的元素时,标签名不加任何修饰,如class类名前加点,id名前加 /#。
来源:https://www.cnblogs.com/dcpeng/p/12985344.html
猜你喜欢
- 在学习和使用各种数据库的过程中,我们常常会遇到聚族索引、非聚族索引、组合索引的概念,这些索引对我们使用数据库,特别是查询的速度的
- 前面简单介绍了Python字符串基本操作,这里再来简单讲述一下Python列表相关操作1. 基本定义与判断>>> dir(
- 本文实例为大家分享了python实现移位加密和解密的具体代码,供大家参考,具体内容如下代码很简单,就不多做解释啦。主要思路是将字符串转为As
- 目录1.python中的异常2.捕捉异常try-except多个except子句 一个except块捕捉多个异常 空ex
- 简介Python免费调用百度AI实现图片上面的文字识别步骤安装百度AI库!pip install baidu-aip注册百度AI开放平台先注
- 首先要说的是python中的除法运算,在python 2.5版本中存在两种除法运算,即所谓的true除法和floor除法。当使用x/y形式进
- 因为要将js的一个签名算法移植到python上,遇到一些麻烦。int无限宽度,不会溢出算法中需要用到了32位int的溢出来参与运算,但是py
- 相信有些小伙伴,在没接触py之前,肯定都是有所准备的,想学语言由来已久,拿小编来说,一直趁着空挡就开始找课程学习,用记下学习历程,还会向一些
- 本文更多将会介绍三思在日常中经常会用到的,或者虽然很少用到,但是感觉挺有意思的一些函数。分二类介绍,分别是: 著名函数篇-经常用到的函数 非
- 本文实例为大家分享了Python实现学生信息管理系统的具体代码,供大家参考,具体内容如下要求描述:学生的信息包括:学号,姓名,年龄,性别,出
- 1、类的定义创建一个rectangle.py文件,并在该文件中定义一个Rectangle类。在该类中,__init__表示构造方法。其中,s
- 一、队列基本操作from queue import Queueq = Queue(5) # 创建一个容量为5的队列。如果给一个小
- 上篇文章讲了js中的一些概念(词法结构) 和 数据类型(部分)。这章我们 继续.然后了解下js中操作数据 和 函数的 作用域。1,对象跟基本
- 这个阶段一直在做和梯度一类算法相关的东西,索性在这儿做个汇总:一、算 * 述梯度下降法(gradient descent)别名最速
- 模型训练时GPU利用率太低的原因最近在训练SSD模型时发现GPU的利用率只有8%,而CPU的利用率却非常高。后来了解到,一般使用CPU进行数
- 本文实例讲述了go语言睡眠排序算法。分享给大家供大家参考。具体分析如下:睡眠排序算法是一个天才程序员发明的,想法很简单,就是针对数组里的不同
- 1、前期准备通过 pip 或 easy_install 安装了 pymongo 之后, 就能通过 Python 调教 mongodb 了.接
- 不可否认,阿里巴巴走得越来越快也越来越好。技术的成熟让很多B2B B2C网站都在跟风学习它们。在这里我就来说一说它的搜索效果吧。如图所示:&
- 本文实例讲述了Python数据分析之双色球基于线性回归算法预测下期中奖结果。分享给大家供大家参考,具体如下:前面讲述了关于双色球的各种算法,
- 核心技术:Python3.7GUI技术:Tkinter (Python已经内置)好多文章写Python GUI之tkinter窗口视窗教程大