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类继承用法实例分析
Oct 10 Python
Python新手在作用域方面经常容易碰到的问题
Apr 03 Python
简单介绍Ruby中的CGI编程
Apr 10 Python
Python中内建函数的简单用法说明
May 05 Python
Python提取网页中超链接的方法
Sep 18 Python
使用Eclipse如何开发python脚本
Apr 11 Python
python一键去抖音视频水印工具
Sep 14 Python
python制作填词游戏步骤详解
May 05 Python
详解python实现交叉验证法与留出法
Jul 11 Python
python滑块验证码的破解实现
Nov 10 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
python 实现分组求和与分组累加求和代码
May 18 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 screw加密php源代码
2013/06/20 PHP
php使用curl伪造浏览器访问操作示例
2019/09/30 PHP
PHP超全局变量实现原理及代码解析
2020/09/01 PHP
javascript 函数参数限制说明
2010/11/19 Javascript
JS滚轮事件onmousewheel使用介绍
2013/11/01 Javascript
jquery简单图片切换显示效果实现方法
2015/01/14 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
原生JS实现图片翻书效果
2017/02/16 Javascript
纯JavaScript实现实时反馈系统时间
2017/10/26 Javascript
JS从非数组对象转数组的方法小结
2018/03/26 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
python服务器端收发请求的实现代码
2014/09/29 Python
Python爬虫设置代理IP(图文)
2018/12/23 Python
python dlib人脸识别代码实例
2019/04/04 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
2019/09/04 Python
用python写测试数据文件过程解析
2019/09/25 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
Python如何脚本过滤文件中的注释
2020/05/27 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
python 代码运行时间获取方式详解
2020/09/18 Python
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
马来西亚最大的在线隐形眼镜商店:MrLens
2019/03/27 全球购物
数字化校园建设方案
2014/05/03 职场文书
教师查摆问题自查报告
2014/10/11 职场文书
学生检讨书
2015/01/27 职场文书
中学生综合素质自我评价
2015/03/06 职场文书
2015年宣传工作总结
2015/04/08 职场文书
护士2015年终工作总结
2015/04/29 职场文书
交通事故代理词范文
2015/05/23 职场文书
新手初学Java List 接口
2021/07/07 Java/Android
正则表达式基础与常用验证表达式
2022/06/16 Javascript