Python CSS选择器爬取京东网商品信息过程解析


Posted in Python onJune 01, 2020

CSS选择器

目前,除了官方文档之外,市面上及网络详细介绍BeautifulSoup使用的技术书籍和博客软文并不多,而在这仅有的资料中介绍CSS选择器的少之又少。在网络爬虫的页面解析中,CCS选择器实际上是一把效率甚高的利器。虽然资料不多,但官方文档却十分详细,然而美中不足的是需要一定的基础才能看懂,而且没有小而精的演示实例。

Python CSS选择器爬取京东网商品信息过程解析

京东商品图

首先进入京东网,输入自己想要查询的商品,向服务器发送网页请求。在这里小编仍以关键词“狗粮”作为搜索对象,之后得到后面这一串网址:
https://search.jd.com/Search?keyword=%E7%8B%97%E7%B2%AE&enc=utf-8,其中参数的意思就是我们输入的keyword,在本例中该参数代表“狗粮”,具体详情可以参考Python大神用正则表达式教你搞定京东商品信息。所以,只要输入keyword这个参数之后,将其进行编码,就可以获取到目标URL。之后请求网页,得到响应,尔后利用CSS选择器进行下一步的数据采集。

商品信息在京东官网上的部分网页源码如下图所示:

Python CSS选择器爬取京东网商品信息过程解析

部分网页源码

仔细观察源码,可以发现我们所需的目标信息在红色框框的下面,那么接下来我们就要一层一层的去获取想要的信息。

在Python的urllib库中提供了quote方法,可以实现对URL的字符串进行编码,从而可以进入到对应的网页中去。

Python CSS选择器爬取京东网商品信息过程解析

CSS选择器在线复制

很多小伙伴都觉得CSS表达式很难写,其实掌握了基本的用法也就不难了。在线复制CSS表达式如上图所示,可以很方便的复制CSS表达式。但是通过该方法得到的CSS表达式放在程序中一般不能用,而且长的没法看。所以CSS表达式一般还是要自己亲自上手。

直接上代码,利用CSS去提取目标信息,如商品的名字、链接、图片和价格,具体的代码如下图所示:

Python CSS选择器爬取京东网商品信息过程解析

代码实现

如果你想快速的实现功能更强大的网络爬虫,那么BeautifulSoupCSS选择器将是你必备的利器之一。BeautifulSoup整合了CSS选择器的语法和自身方便使用API。在网络爬虫的开发过程中,对于熟悉CSS选择器语法的人,使用CSS选择器是个非常方便的方法。

最后得到的效果图如下所示:

Python CSS选择器爬取京东网商品信息过程解析

最终效果图

新鲜的狗粮再一次出炉咯~~~

Python CSS选择器爬取京东网商品信息过程解析

CSS选择器

关于CSS选择器的简单介绍:

BeautifulSoup支持大部分的CSS选择器。其语法为:向tag对象或BeautifulSoup对象的.select()方法中传入字符串参数,选择的结果以列表形式返回,即返回类型为list。

tag.select("string")

BeautifulSoup.select("string")

注意:在取得含有特定CSS属性的元素时,标签名不加任何修饰,如class类名前加点,id名前加 /#。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
状态机的概念和在Python下使用状态机的教程
Apr 11 Python
Python实现字典去除重复的方法示例
Jul 31 Python
python中返回矩阵的行列方法
Apr 04 Python
Python实现快速傅里叶变换的方法(FFT)
Jul 21 Python
python使用knn实现特征向量分类
Dec 26 Python
Python面向对象程序设计构造函数和析构函数用法分析
Apr 12 Python
python多线程扫描端口(线程池)
Sep 04 Python
快速查找Python安装路径方法
Feb 06 Python
Python实现Wordcloud生成词云图的示例
Mar 30 Python
如何在Python对Excel进行读取
Jun 04 Python
Python Matplotlib简易教程(小白教程)
Jul 28 Python
Python 调用C++封装的进一步探索交流
Mar 04 Python
matlab、python中矩阵的互相导入导出方式
Jun 01 #Python
如何理解Python中的变量
Jun 01 #Python
pycharm实现print输出保存到txt文件
Jun 01 #Python
Python如何爬取qq音乐歌词到本地
Jun 01 #Python
pycharm sciview的图片另存为操作
Jun 01 #Python
Python利用Xpath选择器爬取京东网商品信息
Jun 01 #Python
Python用类实现扑克牌发牌的示例代码
Jun 01 #Python
You might like
常用的PHP数据库操作方法(MYSQL版)
2011/06/08 PHP
php 中文字符串首字母的获取函数分享
2013/11/04 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
Laravel中任务调度console使用方法小结
2017/05/07 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
php实现文章评论系统
2019/02/18 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
javaScript Array(数组)相关方法简述
2009/07/25 Javascript
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
js在IE与firefox的差异集锦
2014/11/11 Javascript
理解javascript定时器中的setTimeout与setInterval
2016/02/23 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
jquery判断对象是否为空并遍历对象的简单实例
2016/07/26 Javascript
RGB和YUV 多媒体编程基础详细介绍
2016/11/04 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
浅谈react 同构之样式直出
2017/11/07 Javascript
vue addRoutes实现动态权限路由菜单的示例
2018/05/15 Javascript
vue渲染方式render和template的区别
2020/06/05 Javascript
深入分析JavaScript 事件循环(Event Loop)
2020/06/19 Javascript
彻底理解Python list切片原理
2017/10/27 Python
python基础教程项目二之画幅好画
2018/04/02 Python
Python错误处理操作示例
2018/07/18 Python
CentOS7安装Python3的教程详解
2019/04/10 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
Python实现i人事自动打卡的示例代码
2020/01/09 Python
Python之多进程与多线程的使用
2021/02/23 Python
IE9对HTML5中部分属性不支持的原因分析
2014/10/15 HTML / CSS
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
出国留学单位推荐信
2015/03/26 职场文书
红楼梦读书笔记
2015/06/25 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
2016优秀教师先进个人事迹材料
2016/02/25 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python
mysql联合索引的使用规则
2021/06/23 MySQL