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中处理时间的几种方法小结
Apr 09 Python
从零开始学Python第八周:详解网络编程基础(socket)
Dec 14 Python
python如何生成网页验证码
Jul 28 Python
梅尔倒谱系数(MFCC)实现
Jun 19 Python
python twilio模块实现发送手机短信功能
Aug 02 Python
python单向循环链表原理与实现方法示例
Dec 03 Python
Python Selenium参数配置方法解析
Jan 19 Python
django实现HttpResponse返回json数据为中文
Mar 27 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
Apr 09 Python
python pandas dataframe 去重函数的具体使用
Jul 20 Python
python集合的新增元素方法整理
Dec 07 Python
python 指定源路径来解决import问题的操作
Mar 04 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
漫威DC即将合作联动,而双方早已经秘密开始
2020/04/09 欧美动漫
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
PHP获取当前日期和时间及格式化方法参数
2015/05/11 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
Javascript &amp; DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
FireFox JavaScript全局Event对象
2009/06/14 Javascript
Dojo 学习笔记入门篇 First Dojo Example
2009/11/15 Javascript
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
深入探讨前端框架react
2015/12/09 Javascript
jQuery插件支持同一页面被多次调用
2016/02/14 Javascript
jQuery实现的购物车物品数量加减功能代码
2016/11/16 Javascript
BootstrapValidator超详细教程(推荐)
2016/12/07 Javascript
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
其实你可以少写点if else与switch(推荐)
2019/01/10 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
Python中的类与对象之描述符详解
2015/03/27 Python
python使用post提交数据到远程url的方法
2015/04/29 Python
详解Python3中的Sequence type的使用
2015/08/01 Python
Python批量查询域名是否被注册过
2017/06/21 Python
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
python字符串查找函数的用法详解
2019/07/08 Python
python 实现读取csv数据,分类求和 再写进 csv
2020/05/18 Python
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
校园报刊亭的创业计划书
2014/01/02 职场文书
手机被没收检讨书
2014/02/22 职场文书
高中生旷课检讨书
2014/10/08 职场文书
教师个人培训总结
2015/02/11 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
2016年全国爱牙日宣传活动总结
2016/04/05 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
Python一行代码实现自动发邮件功能
2021/05/30 Python