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采用socket模拟TCP通讯的实现方法
Nov 19 Python
Windows安装Python、pip、easy_install的方法
Mar 05 Python
Python内置模块turtle绘图详解
Dec 09 Python
Python实现读取Properties配置文件的方法
Mar 29 Python
Django 登陆验证码和中间件的实现
Aug 17 Python
在Python 不同级目录之间模块的调用方法
Jan 19 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
Jan 08 Python
Python class的继承方法代码实例
Feb 14 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
Feb 24 Python
利用 Python ElementTree 生成 xml的实例
Mar 06 Python
Python StringIO及BytesIO包使用方法解析
Jun 15 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
Sep 17 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+jQuery 注册模块开发详解
2014/10/14 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
Js 中debug方式
2010/02/07 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
jQuery插件开发详细教程
2014/06/06 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
2017/01/19 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
jquery+css实现侧边导航栏效果
2017/06/12 jQuery
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
2017/07/10 Javascript
js数组实现权重概率分配
2017/09/12 Javascript
iView框架问题整理小结
2018/10/16 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
Vue Cli3 打包配置并自动忽略console.log语句的方法
2020/04/23 Javascript
在Python中操作列表之List.pop()方法的使用
2015/05/21 Python
Python中表示字符串的三种方法
2017/09/06 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
pytorch快速搭建神经网络_Sequential操作
2020/06/17 Python
python3.7添加dlib模块的方法
2020/07/01 Python
Python 日期与时间转换的方法
2020/08/01 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
2021/02/18 Python
教师自荐书
2013/10/08 职场文书
商场活动策划方案
2014/01/24 职场文书
函授自我鉴定范文
2014/02/06 职场文书
公司请假条格式
2014/04/11 职场文书
教师节感恩老师演讲稿
2014/08/28 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
分享Python获取本机IP地址的几种方法
2022/03/17 Python