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中多线程的创建及基本调用方法
Jul 08 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
May 31 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
Nov 30 Python
在PYQT5中QscrollArea(滚动条)的使用方法
Jun 14 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
Nov 01 Python
python运用pygame库实现双人弹球小游戏
Nov 25 Python
Python log模块logging记录打印用法解析
Jan 20 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
Apr 17 Python
基于Keras中Conv1D和Conv2D的区别说明
Jun 19 Python
python3中TQDM库安装及使用详解
Nov 18 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
Dec 01 Python
详解python的异常捕获
Mar 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
浅谈php7的重大新特性
2015/10/23 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
jQuery textarea的长度进行验证
2009/05/06 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
Javascript中的String对象详谈
2014/03/03 Javascript
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
微信小程序 MINA文件结构
2016/10/17 Javascript
jQuery实现ToolTip元素定位显示功能示例
2016/11/23 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
JS变量中有var定义和无var定义的区别以及es6中let命令和const命令
2017/02/19 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
Vue自定义指令使用方法详解
2017/08/21 Javascript
详解angular2 控制视图的封装模式
2018/12/27 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
layui-table获得当前行的上/下一行数据的例子
2019/09/24 Javascript
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
[01:55]2014DOTA2国际邀请赛快报:国土生病 紧急去医院治疗
2014/07/10 DOTA
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
Linux下Python获取IP地址的代码
2014/11/30 Python
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
python元组拆包实现方法
2021/02/28 Python
加拿大百叶窗和窗帘定制网站:Blinds
2017/01/30 全球购物
打架检讨书2000字
2014/02/22 职场文书
租房协议书样本
2014/08/20 职场文书
2014年社区居委会主任重阳节讲话稿
2014/09/25 职场文书
股权转让协议范本
2014/12/07 职场文书
教师工作表现评语
2014/12/31 职场文书
管理失职检讨书范文
2015/05/05 职场文书
Oracle使用别名的好处
2022/04/19 Oracle
apache ftpserver搭建ftp服务器
2022/05/20 Servers