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下尝试多线程编程
Apr 28 Python
Linux系统上Nginx+Python的web.py与Django框架环境
Dec 25 Python
举例讲解如何在Python编程中进行迭代和遍历
Jan 19 Python
浅谈Python的文件类型
May 30 Python
python数据结构链表之单向链表(实例讲解)
Jul 25 Python
python 寻找list中最大元素对应的索引方法
Jun 28 Python
Python 文本文件内容批量抽取实例
Dec 10 Python
HTML的form表单和django的form表单
Jul 25 Python
python解析xml文件方式(解析、更新、写入)
Mar 05 Python
Python文件操作基础流程解析
Mar 19 Python
为什么相对PHP黑python的更少
Jun 21 Python
python自动从arxiv下载paper的示例代码
Dec 05 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
Zend的MVC机制使用分析(二)
2013/05/02 PHP
php json转换相关知识(小结)
2018/12/21 PHP
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
js实现在同一窗口浏览图片
2014/09/17 Javascript
你知道setTimeout是如何运行的吗?
2016/08/16 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
2019/02/26 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
详解JWT token心得与使用实例
2019/08/02 Javascript
Vue父组件向子组件传值以及data和props的区别详解
2020/03/02 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
[01:47]2018年度DOTA2最佳教练-完美盛典
2018/12/16 DOTA
零基础写python爬虫之爬虫的定义及URL构成
2014/11/04 Python
python使用tkinter实现简单计算器
2018/01/30 Python
Python决策树和随机森林算法实例详解
2018/01/30 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
python实现单链表中删除倒数第K个节点的方法
2018/09/28 Python
python正则表达式匹配[]中间为任意字符的实例
2018/12/25 Python
python按照多个条件排序的方法
2019/02/08 Python
python版百度语音识别功能
2019/07/09 Python
python多进程并行代码实例
2019/09/30 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
香港万宁官方海外旗舰店:香港健与美连锁店
2018/09/27 全球购物
酒店管理专业毕业生推荐信
2013/11/10 职场文书
中学生英语演讲稿
2014/04/26 职场文书
医生个人年终总结
2015/02/28 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
《家世》读后感:看家训的力量
2019/12/30 职场文书
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技