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 Web开发框架Django
Jun 30 Python
跟老齐学Python之画圈还不简单吗?
Sep 20 Python
初步解析Python中的yield函数的用法
Apr 03 Python
神经网络python源码分享
Dec 15 Python
Python用 KNN 进行验证码识别的实现方法
Feb 06 Python
python3中函数参数的四种简单用法
Jul 09 Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
Nov 30 Python
详解Django CAS 解决方案
Oct 30 Python
使用py-spy解决scrapy卡死的问题方法
Sep 29 Python
Python os库常用操作代码汇总
Nov 03 Python
使用Python提取文本中含有特定字符串的方法示例
Dec 09 Python
在python3.9下如何安装scrapy的方法
Feb 03 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设计模式之简单工厂模式详解
2014/09/04 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
jquery 插件学习(三)
2012/08/06 Javascript
实现web打印的各种方法介绍及实现代码
2013/01/09 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
2013/04/25 Javascript
深入理解javascript动态插入技术
2013/11/12 Javascript
网页广告中JS代码的信息监听示例
2014/04/02 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
微信小程序实现跟随菜单效果和循环嵌套加载数据
2017/11/21 Javascript
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
mpvue小程序循环动画开启暂停的实现方法
2019/05/15 Javascript
微信小程序实现页面浮动导航
2020/01/08 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
原生js实现五子棋游戏
2020/05/28 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
[05:31]DOTA2上海特级锦标赛主赛事第三日RECAP
2016/03/05 DOTA
学习python (2)
2006/10/31 Python
python从ftp下载数据保存实例
2013/11/20 Python
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
Python时间序列缺失值的处理方法(日期缺失填充)
2019/08/11 Python
浅析Python 责任链设计模式
2020/09/11 Python
纯css3制作网站后台管理面板
2014/12/30 HTML / CSS
阿联酋团购网站:Groupon阿联酋
2016/10/14 全球购物
家长对老师的评语
2014/04/18 职场文书
2014年政教处工作总结
2014/12/20 职场文书
焦裕禄观后感
2015/06/03 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
2016大学生国家助学贷款承诺书
2016/03/25 职场文书