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使用xauth方式登录饭否网然后发消息
Apr 11 Python
python实现2048小游戏
Mar 30 Python
python实现爬虫下载美女图片
Jul 14 Python
Python编程中的异常处理教程
Aug 21 Python
Python理解递归的方法总结
Jan 28 Python
python实现学员管理系统
Feb 26 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
Aug 05 Python
PyCharm2019安装教程及其使用(图文教程)
Sep 29 Python
使用matlab或python将txt文件转为excel表格
Nov 01 Python
Pytorch 卷积中的 Input Shape用法
Jun 29 Python
Django与数据库交互的实现
Jun 03 Python
Python经常使用的一些内置函数
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
Zend的MVC机制使用分析(一)
2013/05/02 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
JavaScript初学者需要了解10个小技巧
2010/08/25 Javascript
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
关于jQuery object and DOM element
2013/04/15 Javascript
使用JavaScript 实现各种跨域的方法
2013/05/08 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
JavaScript实现关键字高亮功能
2014/11/12 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
jquery图片倾斜层叠切换特效代码分享
2015/08/27 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
简单谈谈Python中的几种常见的数据类型
2017/02/10 Python
对Python中gensim库word2vec的使用详解
2018/05/08 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
基于Python获取城市近7天天气预报
2019/11/26 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
2020/03/24 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
应届电子商务毕业自荐书范文
2014/02/11 职场文书
请假条怎么写
2014/04/10 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
四风个人对照检查材料思想汇报
2014/09/25 职场文书
2014年社区工会工作总结
2014/12/18 职场文书
捐资助学感谢信
2015/01/21 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
2015学校图书管理员工作总结
2015/05/11 职场文书
新人入职感言
2015/07/31 职场文书
利用Java连接Hadoop进行编程
2022/06/28 Java/Android