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使用urllib模块开发的多线程豆瓣小站mp3下载器
Jan 16 Python
Python 2.7.x 和 3.x 版本的重要区别小结
Nov 28 Python
python if not in 多条件判断代码
Sep 21 Python
利用pandas进行大文件计数处理的方法
Jul 25 Python
3个用于数据科学的顶级Python库
Sep 29 Python
在python中使用requests 模拟浏览器发送请求数据的方法
Dec 26 Python
Python3.6.x中内置函数总结及讲解
Feb 22 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
如何写python的配置文件
Jun 07 Python
django创建css文件夹的具体方法
Jul 31 Python
pytorch使用horovod多gpu训练的实现
Sep 09 Python
django中ImageField的使用详解
Dec 21 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在服务器执行exec命令失败的解决方法
2012/03/03 PHP
学习ExtJS 访问容器对象
2009/10/07 Javascript
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
查找页面中所有类为test的结点的方法
2014/03/28 Javascript
javascript html5实现表单验证
2016/03/01 Javascript
jquery自定义插件——window的实现【示例代码】
2016/05/06 Javascript
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
Javascript 函数的四种调用模式
2016/11/05 Javascript
canvas实现图像放大镜
2017/02/06 Javascript
JS实现的Unicode编码转换操作示例
2017/04/28 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
JavaScript变量基本使用方法实例分析
2019/11/15 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
详解Django之admin组件的使用和源码剖析
2018/05/04 Python
Python高斯消除矩阵
2019/01/02 Python
python网络应用开发知识点浅析
2019/05/28 Python
python3 requests库文件上传与下载实现详解
2019/08/22 Python
pytorch中nn.Conv1d的用法详解
2019/12/31 Python
python应用Axes3D绘图(批量梯度下降算法)
2020/03/25 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
学术会议欢迎词
2014/01/09 职场文书
应届电子商务毕业自荐书范文
2014/02/11 职场文书
国窖1573广告词
2014/03/21 职场文书
机电专业求职信
2014/06/14 职场文书
机械专业求职信范文
2014/07/15 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
环境建议书
2015/02/04 职场文书
公司周年庆典致辞
2015/07/30 职场文书
60句有关成长的名言
2019/09/04 职场文书
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server