学习爬虫的感想和心得

本文分享了作者学习爬虫两个月的心得体会,从掌握Python基础和爬虫库,到应对网站反爬策略,再到项目部署的复杂性,揭示了爬虫并非易事。涉及的工具有requests、scrapy、selenium,遇到的问题包括同步与异步请求、反爬机制、登录与验证码等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写爬虫真不是件简单的事

  学习了大概两个月的爬虫,渐渐感觉到写爬虫并不是件简单的事,有诸多的考虑,先简单的记录一下,有时间分部分做示例

 

一、学习爬虫知识

  我是从python3开始做爬虫的,首先,python3的语法必须知道,不过python3并不难,语法也非常简洁。但是,写着发现有个毛病,就是比如一个形参,由于不确定类型,.无法像java那样补全,导致你如果忘了一个函数,必须查看代码或手册。。。不过这也是动态语言都有的问题,但好的IDE会帮你记录,所以使用好的编译器很有必要。。哈哈。

  然后是学习python的各种库,为了打好基础,从基础的库开始学习会比较好,比如urlib,然后学习requests,这种是用来发请求的。返回的数据又是各种各样的类型,有html,js,json,字符串等,针对每种格式,当然都需要合适的解析器,当然,正则都能做。。。这里,解析html用到xpath,beautifulsoup,pyquery等库,js代码需要js引擎来运行和分析,例如nodejs,v8,json的解析要用到json库,字符串就看具体情况了。

    做完这些,基本上可以开始爬取一些数据了。。。但是,如果爬虫真的就这么简单的话,,那就好了哈

  然后你会想提高爬取的速度,你了解到requests库是同步请求,也就是从发出请求到收到响应,线程一直在等,你当然啊会想到多线程,但python单进程只能跑满一个核。。。并且多线程也没那么好写吧,同步控制,分配任务也需要挺多事的。所以,从python3.5开始,新增了一个aiohttp--异步请求库,它可以发送一批请求,以事件驱动,根据回调函数来实现单线程异步。或许你会觉得这还是不够方便,开始使用爬虫框架,例如scrapy,这下速度突飞猛进,瓶颈在带宽或io上了!

二、分析网站

  好了,这下普通的网站能随心所欲的爬了,直到这天,你打开了某做了反爬的网站。。。

    为啥爬了一下就不能爬了?为啥返回结果和浏览器打开的不一样啊?怎么这个要验证码啊?怎么这个要登录?于是开始了解到需要使用代理防止封ip,需要伪造头部装得够像浏览器。需要分析请求,分析各种参数代表什么意思,如何伪造,开始学习js和分析js的加密代码---这个是真的恶心,使用postman发请求和vscode编码和nodejs运行进行调试,或者可以用selenium+chrome这种大杀器直接莽过去,可是速度可比直接请求api慢多了。碰到需要登录才能获取cookies才能爬的网站,开始做注册机(但是现在一般要手机号,成本高),或者买账号,用来做cookie池。登录需要识别验证码?验证码可就千奇百怪了,人工打码or打码平台or机器学习?终于,在掌握这么多分析技能之后,感觉到爬取一个网站多么麻烦,需要很高成本。。。

栗子:破解某网站js加密过程

三、部署项目

  前面终于写好了爬取复杂网站的分析和技巧,现在需要部署项目,服务器就需要不少,数据库需要准备吧,需要做分布式吧,docker,hadoop了解一下?还要维护稳定,处理各种异常,总不能跑一下就挂了吧。还有,网站突然改动一下加密,,得跟着改啊。

 

转载于:https://www.cnblogs.com/haoabcd2010/p/10219310.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值