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 10 Python
详解Python3中yield生成器的用法
Aug 20 Python
Python的Flask框架中的Jinja2模板引擎学习教程
Jun 30 Python
Python基础中所出现的异常报错总结
Nov 19 Python
pandas表连接 索引上的合并方法
Jun 08 Python
python数据批量写入ScrolledText的优化方法
Oct 11 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
Aug 05 Python
django在保存图像的同时压缩图像示例代码详解
Feb 11 Python
Django models文件模型变更错误解决
May 11 Python
selenium切换标签页解决get超时问题的完整代码
Aug 30 Python
PyCharm最新激活码PyCharm2020.2.3有效
Nov 18 Python
Python tkinter之Bind(绑定事件)的使用示例
Feb 05 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中改变图片的尺寸大小的代码
2011/07/17 PHP
PHP文件上传类实例详解
2016/04/08 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
jquery中ajax跨域方法实例分析
2015/12/18 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
微信小程序实现无限滚动列表
2020/05/29 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
2020/09/04 Javascript
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
[01:54]TI珍贵瞬间系列(三):翻盘
2020/08/28 DOTA
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
使用Python制作微信跳一跳辅助
2018/01/31 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
django 将model转换为字典的方法示例
2018/10/16 Python
基于python求两个列表的并集.交集.差集
2020/02/10 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
高级工程师岗位职责
2013/12/15 职场文书
爱护公物演讲稿
2014/09/09 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
2015年高三教学工作总结
2015/07/21 职场文书
工程移交协议书
2016/03/24 职场文书
90条交通安全宣传标语
2019/10/12 职场文书
python中opencv实现图片文本倾斜校正
2021/06/11 Python
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS