Python基于BeautifulSoup爬取京东商品信息

作者:Python进阶学习交流 时间:2021-03-15 21:52:53 

今天小编利用美丽的汤来为大家演示一下如何实现京东商品信息的精准匹配~~

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来获取目标信息比正则表达式要简单一些呢

来源:https://www.toutiao.com/i6512389594124648967/

标签:Python,BeautifulSoup,爬取
0
投稿

猜你喜欢

  • Python中使用Counter进行字典创建以及key数量统计的方法

    2023-10-05 20:16:36
  • 简述 Python 的类和对象

    2023-05-17 12:44:23
  • python time.sleep()是睡眠线程还是进程

    2022-04-09 17:33:16
  • mysql中普通索引和唯一索引的效率对比

    2010-12-08 16:03:00
  • PHP读取txt文本文件并分页显示的方法

    2023-09-06 21:13:25
  • php设计模式之装饰模式应用案例详解

    2023-11-14 13:37:20
  • php之app消息推送案例教程

    2023-06-15 00:42:02
  • MySql常用命令总结

    2009-09-16 10:51:00
  • Laravel中数据库迁移操作的示例详解

    2023-05-25 06:27:38
  • 详解MySQL 数据库优化方法

    2010-08-12 14:50:00
  • JSONObject.toString

    2008-03-09 19:12:00
  • 3个asp简单技巧

    2009-11-26 20:55:00
  • 给SQL Server传送数组参数的变通办法

    2008-11-25 11:39:00
  • 浅谈购物类网站如何保持视觉设计的一致性

    2009-03-30 16:02:00
  • 用XML结合数据库,给服务器减负

    2007-10-31 09:40:00
  • IE 8 提出“超级标准模式”

    2008-01-24 19:26:00
  • Python实现的数据结构与算法之基本搜索详解

    2021-07-25 03:47:44
  • 百度工程师讲PHP函数的实现原理及性能分析(三)

    2023-10-20 01:33:03
  • 可用性测试过程中需要关注的一些细节

    2009-03-06 12:38:00
  • 解析Anaconda创建python虚拟环境的问题

    2023-08-01 03:58:13
  • asp之家 网络编程 m.aspxhome.com