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练习程序批量修改文件名
Jan 16 Python
Python实现全局变量的两个解决方法
Jul 03 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
Jan 12 Python
flask中主动抛出异常及统一异常处理代码示例
Jan 18 Python
详解python字节码
Feb 07 Python
获取python的list中含有重复值的index方法
Jun 27 Python
对Python 3.5拼接列表的新语法详解
Nov 08 Python
解决sublime+python3无法输出中文的问题
Dec 12 Python
利用python将图片版PDF转文字版PDF
May 03 Python
python粘包问题及socket套接字编程详解
Jun 29 Python
Python内建序列通用操作6种实现方法
Mar 26 Python
浅谈如何使用python抓取网页中的动态数据实现
Aug 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位运算的简单权限设计
2013/06/30 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
PHP页面输出时js设置input框的选中值
2016/09/30 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
JavaScript函数、方法、对象代码
2008/10/29 Javascript
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
Jquery和JS获取ul中li标签的实现方法
2016/06/02 Javascript
快速入门Vue
2016/12/19 Javascript
vue.js树形组件之删除双击增加分支实例代码
2017/02/28 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
2017/03/28 Javascript
vue中实现在外部调用methods的方法(推荐)
2018/02/08 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
移动端如何用下拉刷新的方式实现上拉加载
2018/12/10 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
python快速查找算法应用实例
2014/09/26 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
nginx搭建基于python的web环境的实现步骤
2020/01/03 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
在python中使用nohup命令说明
2020/04/16 Python
python中doctest库实例用法
2020/12/31 Python
韩国11街:11STREET
2018/03/27 全球购物
新品发布会策划方案
2014/06/08 职场文书
明星员工获奖感言
2014/08/14 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
2015年项目工作总结
2015/04/29 职场文书
计划生育责任书
2015/05/09 职场文书
PHP判断是否是json字符串
2021/04/01 PHP