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查询sqlite数据表的方法
May 08 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
Aug 08 Python
PyCharm代码整体缩进,反向缩进的方法
Jun 25 Python
可能是最全面的 Python 字符串拼接总结【收藏】
Jul 09 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
Dec 05 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
PyTorch基本数据类型(一)
May 22 Python
Django 反向生成url实例详解
Jul 30 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
Aug 05 Python
python中eval与int的区别浅析
Aug 11 Python
python getpass实现密文实例详解
Sep 24 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
May 07 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 时区的一点总结
2008/03/26 PHP
深入PHP内存相关的功能特性详解
2013/06/08 PHP
php多个文件及图片上传实例详解
2014/11/10 PHP
php无限分类使用concat如何实现
2015/11/05 PHP
javascript 播放器 控制
2007/01/22 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
详解js中call与apply关键字的作用
2016/11/21 Javascript
jQuery实现页面顶部下拉广告
2016/12/30 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
jQuery 利用ztree实现树形表格的实例代码
2017/09/27 jQuery
JavaScript中的高级函数
2018/01/04 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
解决bootstrap模态框数据缓存的问题方法
2018/08/10 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
vue-form表单验证是否为空值的实例详解
2019/10/29 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
跟老齐学Python之集成开发环境(IDE)
2014/09/12 Python
python如何实现excel数据添加到mongodb
2015/07/30 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
简单了解python关系(比较)运算符
2019/07/08 Python
详解PyTorch手写数字识别(MNIST数据集)
2019/08/16 Python
不拖欠农民工工资承诺书
2014/03/31 职场文书
任命书怎么写
2014/06/04 职场文书
通信工程专业求职信
2014/06/04 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
从事会计工作年限证明
2015/06/23 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
安全生产会议制度
2015/08/06 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers