Python爬虫入门 - 通过茅台脚本讲些爬虫知识,应用和价值

news/2024/7/19 9:36:17 标签: 爬虫, python, 搜索引擎, 开发语言, 编程学习

前言

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

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

正文

什么是爬虫

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

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

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

在这里插入图片描述

爬虫分类

通用爬虫

通用网络爬虫是捜索引擎抓取系统(Baidu、Google、Yahoo 等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。

比如你发布的网站,需要给搜索引擎(百度)爬取过,才能在对应的搜索引擎(baidu)上搜索到。

聚焦爬虫

聚焦爬虫,是"面向特定主题需求"的一种网络爬虫程序,它与通用搜索引擎爬虫的区别在于: 聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。

抢购脚本就是这种“面向特定主题需求”的爬虫程序。而我们主要学习的也是这样的爬虫程序。

爬虫程序的工作模式

说实话,写爬虫程序最难的不是码代码,最难的要熟悉被爬网站的业务逻辑,了解网络请求的链接,需要的参数,反爬的处理等等。

对被爬网站的抓包分析我们后面再说,这里主要讲一般的爬虫程序的工作逻辑。
基本流程

发起请求:爬虫程序首先都会向目标链接发起请求,获取想要的数据。

比如抢购脚本,请求茅台链接的处理:

python">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="catemenu_lk" href="//channel.jd.com&#47;home.html">家居</a>

    <span class="catemenuline">/</span>

      <a target="blank" class="catemenu_lk" href="//channel.jd.com&#47;furniture.html">家具</a>

        <span class="catemenuline">/</span>

          <a target="blank" class="catemenu_lk" href="//jzjc.jd.com&#47;">家装</a>

             <span class="catemenuline">/</span>

 <a target="blank" class="catemenu_lk" href="//channel.jd.com&#47;kitchenware.html">厨具</a>

             </li>

 <li class="catemenuitem" data-index="5" clstag="h|keycount|head|category_05a">

```

- 图片,视频等二进制数据

我们需要根据不同的数据,做不一样的解析,这里最方便的是 json 数据,它是结构化的,容易解析。

不过网站一般都是返回 HTML 数据,我们就需要通过一些 Python 库来解析了。

一般解析的方法有几种:

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

爬虫的应用和价值

爬虫程序的应用和价值显而易见,可以自动抢购茅台。当然,你也可以写抢购各种优惠券,秒杀,高铁抢票等,女同学可以爬取你喜欢的文章,微博保存下来,男同学可以爬取各种妹子图保存下来。

有的人还会爬股票的数据,分析涨跌关系,制定模型,实现自动化炒股等。

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

最后

学习 Python,学习爬虫,可以帮助我们实现很多功能,大家有空可以一起学习,一起进步。

感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你,干货内容包括:

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

👉Python入门学习视频👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

👉Python学习礼包👈

包括:Python开发工具、Python热门电子书、Python100道练习题、Python爬虫&数据分析&人工智能&办公自动化等学习资料

在这里插入图片描述

👉Python实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

点击免费领取《CSDN大礼包》:Python入门到进阶资料 & 实战源码 & 兼职接单方法 安全链接免费领取


http://www.niftyadmin.cn/n/338347.html

相关文章

chatgpt赋能Python-python3h怎么操作

Python3 SEO操作指南 Python3语言已成为计算机编程领域的标准和主要工具之一。SEO&#xff08;Search Engine Optimization&#xff09;是一种促进网站在搜索引擎结果中排名的技术。Python3也可以用来执行SEO操作&#xff0c;本文将介绍如何使用Python3进行SEO操作&#xff0c…

CAN波形分析

第一章 CAN基础 CAN波形分析 示波器表笔正连CANH,负极连CANL得到的波形为&#xff1a; CANH和CANL经过MCP2551或者MCP2515转换之后&#xff0c;示波器正极连CRX&#xff0c;负极接地波形为 二进制表示并解析为 上图第二排红色表示的数字为每隔5个相同的数字要用奇异值隔开&…

PCD235A101 3BHE032025R0101功能框图如何在 PLC 中工作?

​ PCD235A101 3BHE032025R0101功能框图如何在 PLC 中工作&#xff1f; ​ 表示功能块和逻辑门的图形编程语言称为功能块图 创建 PLC 时&#xff0c;逻辑门及其在集成逻辑电路中的应用已广为人知。使用专门的绘图应用程序&#xff0c;连接线用于连接功能块编程中的各种符号。…

vite中批量导入文件, 以pinia状态管理为例

每个项目不太一样哈&#xff0c;仅仅做参考例子&#xff0c;没有更好的只有适合的。 一般来说每个公司有自己架子习惯哈&#xff0c;这个会有所不同&#xff0c;所以一会看我的例子的时候首先看是否适合你的项目哈 回归正题&#xff0c;随着项目变大之后&#xff0c;状态管理…

ascii码,gbk编码,unicodo码,utf-8码

本文简略讲解这几个编码的关系&#xff0c; 1、ASCII (American Standard Code for Information Interchange)&#xff1a;美国信息交换标准代码&#xff0c; 主要应用于英文的编码&#xff0c;每个英文占用一个字节&#xff0c;存储到文件中。 2、gbk&#xff0c;兼容英文编…

国考省考行测:资料分析:增量减量计算公式,百分数化分数

国考省考行测&#xff1a;增量减量计算公式 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能&#xff0c;附带行测和申论&#xff0c;而常规国考省考最重要的还是申论和行测&#xff0c;所以大家认真准备吧&#xff0c;我讲一起屡屡申论和行测的重要知…

湖仓智能应用简论-数据驱动设计

在企业运营中,数据处理和分析(数据治理)占据了大量精力,而且数据治理和机器学习的割裂影响着业务闭环的形成。在执行机器学习中,团队65%以上的时间花费在数据本身质量提升和处理上,而不是真正执行机器学习训练、算法选择、参数优化、特征分析。本文简论这一痛点并提供案例分…

晶圆切割机如何选用切割刀对崩边好

晶圆切割机在切割晶圆时&#xff0c;崩边是一种常见的切割缺陷&#xff0c;影响切割质量和生产效率。要选用合适的切割刀以减少崩边&#xff0c;可以考虑以下几点&#xff1a; 根据晶圆尺寸和切割要求&#xff0c;选择合适的金刚石颗粒尺寸和浓度的切割刀。金刚石颗粒越大&…