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 相关文章推荐
下载安装setuptool和pip linux安装pip    
Jan 24 Python
用smtplib和email封装python发送邮件模块类分享
Feb 17 Python
Python写的创建文件夹自定义函数mkdir()
Aug 25 Python
Python的randrange()方法使用教程
May 15 Python
使用Python实现windows下的抓包与解析
Jan 15 Python
python得到一个excel的全部sheet标签值方法
Dec 10 Python
python程序 创建多线程过程详解
Sep 23 Python
Python 实现加密过的PDF文件转WORD格式
Feb 04 Python
Python面向对象魔法方法和单例模块代码实例
Mar 25 Python
django序列化时使用外键的真实值操作
Jul 15 Python
win10+anaconda安装yolov5的方法及问题解决方案
Apr 29 Python
详解NumPy中的线性关系与数据修剪压缩
May 25 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连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
探讨PHP调用时间格式的参数详解
2013/06/06 PHP
PHP CodeIgniter框架的工作原理研究
2015/03/30 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
2020/10/28 PHP
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
event.X和event.clientX的区别分析
2011/10/06 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
iframe窗口高度自适应的实现方法
2014/01/08 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
JS实现超炫网页烟花动画效果的方法
2015/03/02 Javascript
javascript实现youku的视频代码自适应宽度
2015/05/25 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
原生js实现可拖动的登录框效果
2017/01/21 Javascript
如何使用Bootstrap创建表单
2017/03/29 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
使用jQuery动态设置单选框的选中效果
2018/12/06 jQuery
vue 列表页跳转详情页获取id以及详情页通过id获取数据
2019/03/27 Javascript
webpack常用配置总览(小结)
2019/11/18 Javascript
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
python实现数通设备端口监控示例
2014/04/02 Python
Python 监测文件是否更新的方法
2019/06/10 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
django在保存图像的同时压缩图像示例代码详解
2020/02/11 Python
简约控的天堂:The Undone
2016/12/21 全球购物
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
奥地利度假券的专家:we-are.travel
2019/04/10 全球购物
建筑工程自我鉴定
2013/10/18 职场文书
新员工入职感言
2014/02/01 职场文书
亲子拓展活动方案
2014/02/20 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书