python爬虫脚本入门——飞天秒杀脚本

 前言

前段时间抢茅台脚本非常火,它是Python脚本,加上刚好最近在学习Python,我们准备通过这个脚本,来加深学习Python。

抢茅台的脚本其实属于爬虫脚本的一类,它实现了模拟登陆,模拟访问并抓取数据。于是我们从爬虫开始来学习Python做项目。从这篇开始记录下爬虫相关的笔记和知识点。

有兴趣也可以看下哔哩哔哩python-肉肉的视频

什么是爬虫

到底什么是爬虫?你可以理解为爬虫是互联网上的一只蜘蛛,如果遇到一些网络数据或资源,这只“蜘蛛”可以把这些数据和资源爬取下来。

官方地讲,爬虫是请求网站并提取数据的自动化程序

使用茅台脚本来举例,脚本程序实现模拟登陆京东账号,保存登陆信息,也实现访问商品-茅台,并且帮你抢购商品,成功下订单等等。这类似于你打开京东网站登陆账号密码,浏览商品并下单的操作,脚本将这些操作都实现,形成一个自动化的程序。

爬虫分类

通用爬虫

通用网络爬虫是捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。
比如你发布的网站,需要给搜索引擎(百度)爬取过,才能在对应的搜索引擎(baidu)上搜索到。

聚焦爬虫

聚焦爬虫,是"面向特定主题需求"的一种网络爬虫程序,它与通用搜索引擎爬虫的区别在于: 聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。
抢购脚本就是这种“面向特定主题需求”的爬虫程序。而我们主要学习的也是这样的爬虫程序。

爬虫程序的工作模式

说实话,写爬虫程序最难的不是码代码,最难的要熟悉被爬网站的业务逻辑,了解网络请求的链接,需要的参数,反爬的处理等等。
对被爬网站的抓包分析我们后面再说,这里主要讲一般的爬虫程序的工作逻辑。

基本流程

  • 发起请求:爬虫程序首先都会向目标链接发起请求,获取想要的数据。
    比如抢购脚本,请求茅台链接的处理:

logger.info('访问商品的抢购连接...')
   headers = {
       'User-Agent': self.user_agent,
       'Host': 'marathon.jd.com',
       'Referer': 'https://item.jd.com/{}.html'.format(self.sku_id),
   }
   self.session.get(
       url=self.seckill_url.get(
           self.sku_id),
       headers=headers,
       allow_redirects=False)

发起请求前,需要组装好访问的headers,目的是模拟浏览器访问。访问目标链接,还要带上必须的参数,比如商品ID。

常用的请求方法是GET 和 POST
GET: 参数一般放在链接上,我们在浏览器上输入链接访问,就是GET方法。
POST: 参数一般放在请求方法上,不会暴露,而且POST方法能携带的数据量比较大,比GET方法安全。常用在登陆,下订单等敏感操作上。
  • 获取相应内容:发起请求后,服务器那边会根据请求的参数,返回对应商品的数据。
    比如我们打开茅台商品的页面,会有一个状态码

     

    在这里插入图片描述

     

    我们可以根据这个状态码来判断,是成功的还是失败的。
    常见的状态码有以下几种:

200 成功响应
3xx:跳转使用
404:找不到资源
500以上:服务器错误
  • 解析内容:我们拿到服务器返回的商品数据,可以提取响应的数据,但是需要怎么提取呢?
    一般网站返回的数据有几种:
    • json格式的机构化数据
      {"code":0,"whwswswws":"jM92rBfD0JFPpdmhM5FyRAw==","openall":1,"openalltouch":1,"processtype":1}
      
    • HTML数据
     <a target="_blank" class="cate_menu_lk" href="//channel.jd.com&#47;home.html">家居</a>
        <span class="cate_menu_line">/</span>
          <a target="_blank" class="cate_menu_lk" href="//channel.jd.com&#47;furniture.html">家具</a>
            <span class="cate_menu_line">/</span>
              <a target="_blank" class="cate_menu_lk" href="//jzjc.jd.com&#47;">家装</a>
                 <span class="cate_menu_line">/</span>
     <a target="_blank" class="cate_menu_lk" href="//channel.jd.com&#47;kitchenware.html">厨具</a>
                 </li>
     <li class="cate_menu_item" data-index="5" clstag="h|keycount|head|category_05a">
    
    • 图片,视频等二进制数据
      我们需要根据不同的数据,做不一样的解析,这里最方便的是json数据,它是结构化的,容易解析。
      不过网站一般都是返回HTML数据,我们就需要通过一些Python库来解析了。

一般解析的方法有几种
1.直接处理,保存文本
2.json解析字符串,结构化处理
3.正则表达式,解析规则字符串,使用re库
4.beautifulsoup解析库,解析HTML数据的库
5.pyquery
6.xpath

爬虫的应用和价值

爬虫程序的应用和价值显而易见,可以自动抢购茅台。当然,你也可以写抢购各种优惠券,秒杀,高铁抢票等,女同学可以爬取你喜欢的文章,微博保存下来,男同学可以爬取各种妹子图保存下来yy。
有的人还会爬股票的数据,分析涨跌关系,制定模型,实现自动化炒股等。

对我们来说,能学会爬虫,相当于也熟悉了python,可以自己写一写自动化的程序,减少很多重复的劳动,提高我们的工作效率,有更多时间做自己想做的事情。 

  知道你对python感兴趣,所以给你准备了下面的资料~

  这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要也可以扫描下方csdn官方二维码领取【保证100%免费】CSDN2024开年大礼包:《python学习路线&全套学习资料》免费分享

请添加图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值