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中正则表达式的用法实例汇总
Aug 18 Python
Python新手在作用域方面经常容易碰到的问题
Apr 03 Python
Python线程的两种编程方式
Apr 14 Python
python使用tkinter实现简单计算器
Jan 30 Python
python使用turtle绘制国际象棋棋盘
May 23 Python
TensorFlow实现简单的CNN的方法
Jul 18 Python
python3 批量获取对应端口服务的实例
Jul 25 Python
详解pyinstaller selenium python3 chrome打包问题
Oct 18 Python
Django框架序列化与反序列化操作详解
Nov 01 Python
Django静态文件加载失败解决方案
Aug 26 Python
jupyter notebook远程访问不了的问题解决方法
Jan 11 Python
基于python定位棋子位置及识别棋子颜色
Jul 26 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分页的功能模块
2015/06/16 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
2007/04/20 Javascript
JavaScript作用域与作用域链深入解析
2013/12/06 Javascript
B/S模式项目中常用的javascript汇总
2013/12/17 Javascript
JavaScript禁止页面操作的示例代码
2013/12/17 Javascript
使用javascript实现Iframe自适应高度
2014/12/24 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
微信小程序 聊天室简单实现
2017/04/19 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
2017/08/21 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
vue父组件异步获取数据传给子组件的方法
2018/07/26 Javascript
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
JavaScript实现连连看连线算法
2019/01/05 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
js轮播图之旋转木马效果
2020/10/13 Javascript
vant-ui AddressEdit地址编辑和van-area的用法说明
2020/11/03 Javascript
python使用生成器实现可迭代对象
2018/03/20 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
python opencv实现图像边缘检测
2019/04/29 Python
Django REST framework 单元测试实例解析
2019/11/07 Python
Python matplotlib画曲线例题解析
2020/02/07 Python
Python3实现个位数字和十位数字对调, 其乘积不变
2020/05/03 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
数控技术专业毕业自荐书范文
2014/02/05 职场文书
《风筝》教学反思
2014/04/10 职场文书
《海伦?凯勒》教学反思
2014/04/17 职场文书
求职信的正确写法
2014/07/10 职场文书
初中作文评语
2014/12/25 职场文书
公司介绍信范文
2015/01/31 职场文书
年底个人总结范文
2015/03/10 职场文书