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处理二进制数据的方法
Jun 03 Python
在Python的Django框架中调用方法和处理无效变量
Jul 15 Python
Python连接DB2数据库
Aug 27 Python
python实现对excel进行数据剔除操作实例
Dec 07 Python
Python使用爬虫爬取静态网页图片的方法详解
Jun 05 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
Jul 18 Python
使用python的turtle绘画滑稽脸实例
Nov 21 Python
python pptx复制指定页的ppt教程
Feb 14 Python
Selenium自动化测试工具使用方法汇总
Jun 12 Python
python主要用于哪些方向
Jul 05 Python
利用Python中的Xpath实现一个在线汇率转换器
Sep 09 Python
Prometheus开发中间件Exporter过程详解
Nov 30 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 iconv 函数转gb2312的bug解决方法
2009/10/11 PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
2012/04/09 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
2019/04/10 PHP
HR vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
javaScript 简单验证代码(用户名,密码,邮箱)
2009/09/28 Javascript
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
js利用数组length属性清空和截短数组的小例子
2014/01/15 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
2014/12/18 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
2015/11/17 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
nodejs语言实现验证码生成功能的示例代码
2019/10/13 NodeJs
js实现坦克移动小游戏
2019/10/28 Javascript
SQLite3中文编码 Python的实现
2017/01/11 Python
Python使用PDFMiner解析PDF代码实例
2017/03/27 Python
Python一行代码解决矩阵旋转的问题
2019/11/30 Python
appium+python adb常用命令分享
2020/03/06 Python
python各种excel写入方式的速度对比
2020/11/10 Python
python多线程和多进程关系详解
2020/12/14 Python
python基于opencv 实现图像时钟
2021/01/04 Python
HTML5添加鼠标悬浮音响效果不使用FLASH
2014/04/23 HTML / CSS
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
消防安全员岗位职责
2014/03/10 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
项目投资建议书
2014/05/16 职场文书
2015年感恩节活动总结
2015/03/24 职场文书
手写实现JS中的new
2021/11/07 Javascript