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 12 Python
Python获取某一天是星期几的方法示例
Jan 17 Python
Python中字符串格式化str.format的详细介绍
Feb 17 Python
python导出hive数据表的schema实例代码
Jan 22 Python
Python实现定时精度可调节的定时器
Apr 15 Python
如何用Python实现简单的Markdown转换器
Jul 16 Python
Windows 64位下python3安装nltk模块
Sep 19 Python
uwsgi+nginx部署Django项目操作示例
Dec 04 Python
Python实现E-Mail收集插件实例教程
Feb 06 Python
聊聊python里如何用Borg pattern实现的单例模式
Jun 06 Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 Python
Python定义一个Actor任务
Jul 29 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 zip文件解压类代码
2009/12/02 PHP
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
2010/10/12 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
2019/10/16 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
2013/08/07 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
实现JavaScript的组成----BOM和DOM详解
2016/05/18 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
js HTML5多媒体影音播放
2016/10/17 Javascript
js实现砖头在页面拖拉效果
2020/11/20 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
JavaScript生成指定范围随机数和随机序列的方法
2018/05/05 Javascript
jquery将信息遍历到界面上实例代码
2020/01/21 jQuery
vue实现列表拖拽排序的功能
2020/11/02 Javascript
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
python生成随机密码或随机字符串的方法
2015/07/03 Python
python装饰器实例大详解
2017/10/25 Python
基于Python socket的端口扫描程序实例代码
2018/02/09 Python
详解Python 正则表达式模块
2018/11/05 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
浅谈python编译pyc工程--导包问题解决
2019/03/20 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
python代码实现猜拳小游戏
2020/11/30 Python
有个性的自我评价范文
2013/11/15 职场文书
生产总经理岗位职责
2013/12/19 职场文书
中专生自我鉴定范文
2013/12/19 职场文书
领导失职检讨书
2014/02/24 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
医生个人年度总结
2015/02/28 职场文书
写给女朋友的保证书
2015/05/09 职场文书
戒赌保证书
2015/05/11 职场文书
Python使用Web框架Flask开发项目
2022/06/01 Python