Python基于BeautifulSoup爬取京东商品信息


Posted in Python onJune 01, 2020

今天小编利用美丽的汤来为大家演示一下如何实现京东商品信息的精准匹配~~

HTML文件其实就是由一组尖括号构成的标签组织起来的,每一对尖括号形式一个标签,标签之间存在上下关系,形成标签树;因此可以说Beautiful Soup库是解析、遍历、维护“标签树”的功能库。

如何利用BeautifulSoup抓取京东网商品信息

Python基于BeautifulSoup爬取京东商品信息

首先进入京东网,输入自己想要查询的商品,向服务器发送网页请求。在这里小编仍以关键词“狗粮”作为搜索对象,之后得到后面这一串网址:
https://search.jd.com/Search?keyword=%E7%8B%97%E7%B2%AE&enc=utf-8,其中参数的意思就是我们输入的keyword,在本例中该参数代表“狗粮”,具体详情可以参考Python大神用正则表达式教你搞定京东商品信息。所以,只要输入keyword这个参数之后,将其进行编码,就可以获取到目标URL。之后请求网页,得到响应,尔后利用bs4选择器进行下一步的数据采集。

商品信息在京东官网上的部分网页源码如下图所示:

Python基于BeautifulSoup爬取京东商品信息

狗粮信息在京东官网上的网页源码

仔细观察源码,可以发现我们所需的目标信息是存在<li data-sku="*****" class="gl-item">标签下的,那么接下来我们就像剥洋葱一样,一层一层的去获取我们想要的信息。

直接上代码,如下图所示:

Python基于BeautifulSoup爬取京东商品信息

请求网页,获取源码

通常URL编码的方式是把需要编码的字符转化为%xx的形式,一般来说URL的编码是基于UTF-8的,当然也有的于浏览器平台有关。在Python的urllib库中提供了quote方法,可以实现对URL的字符串进行编码,从而可以进入到对应的网页中去。

之后利用美丽的汤去提取目标信息,如商品的名字、链接、图片和价格,具体的代码如下图所示:

Python基于BeautifulSoup爬取京东商品信息

利用美丽的汤去提取目标信息

在本例中,有个地方需要注意,部分图片的链接是空值,所以在提取的时候需要考虑到这个问题。其解决方法有两个,其一是如果使用img['src']会有报错产生,因为匹配不到对应值;但是使用get['src']就不会报错,如果没有匹配到,它会自动返回None。此外也可以利用try+except进行异常处理,如果匹配不到就pass,小伙伴们可以自行测试一下,这个代码测速过程在上图中也有提及哈。使用get方法获取信息,是bs4中的一个小技巧,希望小伙伴们都可以学以致用噢~~~

最后得到的效果图如下所示:

Python基于BeautifulSoup爬取京东商品信息

最终效果图

新鲜的狗粮出炉咯~~~

小伙伴们,有没有发现利用BeautifulSoup来获取目标信息比正则表达式要简单一些呢

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python修改注册表终止360进程实例
Oct 13 Python
详解Python pygame安装过程笔记
Jun 05 Python
python3+PyQt5使用数据库窗口视图
Apr 24 Python
python tkinter界面居中显示的方法
Oct 11 Python
python定时检测无响应进程并重启的实例代码
Apr 22 Python
Python使用百度api做人脸对比的方法
Aug 28 Python
Python综合应用名片管理系统案例详解
Jan 03 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
Feb 14 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
May 25 Python
Django Model层F,Q对象和聚合函数原理解析
Nov 12 Python
java字符串格式化输出实例讲解
Jan 06 Python
python基于selenium爬取斗鱼弹幕
Feb 20 Python
k-means 聚类算法与Python实现代码
Jun 01 #Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
Jun 01 #Python
python如何写出表白程序
Jun 01 #Python
python中os包的用法
Jun 01 #Python
python保留格式汇总各部门excel内容的实现思路
Jun 01 #Python
Python如何使用正则表达式爬取京东商品信息
Jun 01 #Python
浅谈pycharm导入pandas包遇到的问题及解决
Jun 01 #Python
You might like
php Mysql日期和时间函数集合
2007/11/16 PHP
优化使用mysql存储session的php代码
2008/01/10 PHP
Zend Guard一些常见问题解答
2008/09/11 PHP
对squid中refresh_pattern的一些理解和建议
2009/04/17 PHP
php解决约瑟夫环示例
2014/04/09 PHP
php中memcache 基本操作实例
2015/05/17 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
2019/06/08 PHP
打造基于jQuery的高性能TreeView(asp.net)
2011/02/23 Javascript
使用jquery操作session方法分享
2015/01/22 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
js中的DOM模拟购物车功能
2017/03/22 Javascript
vue中动态绑定表单元素的属性方法
2018/02/23 Javascript
JS实现随机生成10个手机号的方法示例
2018/12/07 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
Python标准库与第三方库详解
2014/07/22 Python
浅析Python中的多重继承
2015/04/28 Python
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
电工工作职责范本
2014/02/22 职场文书
分层教学实施方案
2014/03/19 职场文书
应届生自荐书
2014/06/23 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
银行给客户的感谢信
2015/01/23 职场文书
教师节慰问信
2015/02/15 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript
Python 如何安装Selenium
2021/05/06 Python
解决 redis 无法远程连接
2022/05/15 Redis