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生成指定尺寸缩略图的示例
May 07 Python
Python中用max()方法求最大值的介绍
May 15 Python
python中Apriori算法实现讲解
Dec 10 Python
Python科学计算包numpy用法实例详解
Feb 08 Python
利用pyuic5将ui文件转换为py文件的方法
Jun 19 Python
详解pyinstaller selenium python3 chrome打包问题
Oct 18 Python
Python socket模块方法实现详解
Nov 05 Python
Python namedtuple命名元组实现过程解析
Jan 08 Python
Tensorflow训练模型越来越慢的2种解决方案
Feb 07 Python
python实现Pyecharts实现动态地图(Map、Geo)
Mar 25 Python
python 异步async库的使用说明
May 04 Python
PyQt5 显示超清高分辨率图片的方法
Apr 11 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(2)
2006/10/09 PHP
PHP三层结构(上) 简单三层结构
2010/07/04 PHP
php 定义404页面的实现代码
2012/11/19 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
Symfony2实现从数据库获取数据的方法小结
2016/03/18 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
2016/05/07 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
phpStudy配置多站点多域名和多端口的方法
2017/09/01 PHP
php工具型代码之印章抠图
2018/07/18 PHP
js DataSet数据源处理代码
2010/03/29 Javascript
在JS中最常看到切最容易迷惑的语法(转)
2010/10/29 Javascript
javascript 节点排序 2
2011/01/31 Javascript
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
vue中axios的封装问题(简易版拦截,get,post)
2018/06/15 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
python字符串排序方法
2014/08/29 Python
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
基于matplotlib中ion()和ioff()的使用详解
2020/06/16 Python
纽约通行卡:The New York Pass(免费游览纽约90多个景点)
2017/07/29 全球购物
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
亚洲最大的运动鞋寄售店:KicksCrew
2020/11/26 全球购物
户籍证明的格式
2014/01/13 职场文书
党员学习群众路线教育实践活动对照检查材料
2014/09/23 职场文书
群众路线个人剖析材料
2014/10/07 职场文书
运动会广播稿50字-100字
2014/10/11 职场文书
法务专员岗位职责
2015/02/14 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android
Go语言怎么使用变长参数函数
2022/07/15 Golang
nginx访问报403错误的几种情况详解
2022/07/23 Servers