Python爬虫入门实例五之淘宝商品信息定向爬取(优化版)

写在前面

  这个例子是笔者今天在中国大学MOOC(嵩天 北京理工大学)上学习的时候写下来的。但是很快写完之后我就发现不对劲,因为照着老师的代码写完后运行并不能爬取到信息,经过我的一番折腾,基本解决了问题,并且做了一些优化,写这篇博客记录一下,下图是最终的爬取结果。

在这里插入图片描述

一、爬取原页面

  爬取页面为淘宝网站,以女装为例,原图如下,由于淘宝商品排名实时更新,所以爬取结果顺序与网站顺序可能会存在不同。本实例爬取的内容为商品的价格和名称,并为其添加序号。

在这里插入图片描述

二、编程思路

  这一部分嵩天老师在课中给出了讲解,这里我整理分享给大家。

1.功能描述

目标:获取淘宝搜索页面的信息,提取其中的名称和价格。

理解:
(1).获得淘宝的搜索接口
(2).对翻页的处理

技术路线:requests-re

2.程序的结构设计

步骤一:提交商品搜索请求,循环获取页面
步骤二:对于每个页面,提取商品名称和价格信息
步骤三:将信息输出到屏幕上

对应上述三个步骤分别定义三个函数:

(1)getHTMLText()获得页面
(2)parsePage()对每一个获得的页面进行解析
(3)printGoodsList()将商品的信息输出到屏幕上

三、编程过程

1.解决翻页问题

  首先我们来看一下前三页分别的URL

在这里插入图片描述
  对淘宝每一页商品数量的观察我们可以发现,每一页有44个商品,结合上面的结果我们可以猜测,变量s表示的是第二页,第三页…页的起始商品的编号。基于这种规则,我们就可以构建不同页的URL链接。

代码如下:

for i in range(depth):#对每次翻页后的URL链接进行设计
    url = start_url + '&s='+str(44*i)
    html = getHTMLText(url)
    parsePage(infoList,html)

2.编写getHTMLText()函数

def getHTMLText(url):#获得页面
    try:
        kv = {
   'user-agent': 'Mozilla/5.0',
              'cookie':' '#请自行获取
              }
        r = requests.get(url,headers=kv,timeout = 30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        print("获取页面失败")

关于cookie的获取方法,可以参考我的这篇博客
链接: https://blog.youkuaiyun.com/weixin_44578172/article/details/109353017</

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我敲的贼快

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值