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实现复制整个目录的方法
May 12 Python
Python开发的实用计算器完整实例
May 10 Python
python实现学生管理系统
Jan 11 Python
python socket网络编程之粘包问题详解
Apr 28 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
Feb 13 Python
Django中的用户身份验证示例详解
Aug 07 Python
python已协程方式处理任务实现过程
Dec 27 Python
Pycharm导入anaconda环境的教程图解
Jul 31 Python
python进度条显示-tqmd模块的实现示例
Aug 23 Python
关于Kotlin中SAM转换的那些事
Sep 15 Python
Python paramiko使用方法代码汇总
Nov 20 Python
基于flask实现五子棋小游戏
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
AM/FM收音机的安装与调试
2021/03/02 无线电
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
PHP读MYSQL中文乱码的解决方法
2006/12/17 PHP
destoon公司主页模板风格的添加方法
2014/06/20 PHP
php下pdo的mysql事务处理用法实例
2014/12/27 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
JS实现网页滚动条感应鼠标变色的方法
2015/02/26 Javascript
每天一篇javascript学习小结(RegExp对象)
2015/11/17 Javascript
js获取时间精确到秒(年月日)
2016/03/16 Javascript
第三章之Bootstrap 表格与按钮功能
2016/04/25 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
vue实现下拉加载其实没那么复杂
2019/08/13 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
Python的Flask框架中实现登录用户的个人资料和头像的教程
2015/04/20 Python
python用户评论标签匹配的解决方法
2018/05/31 Python
python实现输出一个序列的所有子序列示例
2019/11/18 Python
利用Python制作动态排名图的实现代码
2020/04/09 Python
Python Json数据文件操作原理解析
2020/05/09 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
Python如何将将模块分割成多个文件
2020/08/04 Python
通过代码实例了解Python3编程技巧
2020/10/13 Python
Python中过滤字符串列表的方法
2020/12/22 Python
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
文明餐桌活动方案
2014/02/11 职场文书
创业者迈进成功第一步:如何写创业计划书?
2014/03/22 职场文书
捐助倡议书范文
2014/04/15 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
Python自然语言处理之切分算法详解
2021/04/25 Python
React forwardRef的使用方法及注意点
2021/06/13 Javascript