scrapy+python当你的爬虫遇到验证码处理方式之一


朋友们大家好,今天再开一博说一下自己在学习爬虫练习时遇到的问题及解决办法


1、首先得承认,任何方式的偷盗行为都不在法律的保护范围之内,要是偷自己的东西呢,就另当别论了,douban 还是相当仁义的,只挡一道墙,你只要能越过我的墙,进入的是你家的院子,你随便拿吧。

2、翻过douban的墙,很多网站都反爬的很好的,比如汽车之家,你界面上看到的内容,大部分都是加密的,汽车之前最常用的好像是css 对照加的,你拿汽车之家的数据,拿回来的内容大部份都 :: befor,:: content 我只类比一下,那有没有办法爬汽车之家呢,办法很显然,你只要拿到他的对称加密的方法,原生的对照回来就好了,当然汽车之家也不傻,他基本上每隔一段时间就变一下

3、讲一下爬虫最基本的翻人家墙的方法,IP代理池,用户代理池,什么IP代理池(那不是要自己写一个很长很长的list?那我去哪里搞IP呢,办法是有的“西刺代理”免费版,but 我不建议大家这样玩,建议使用收费的,调用他们的接口就好了,原因很简单,你写完你的IP代理池的时候,前边的已经有N多的不能用了,而且你写程序的时候还要循环这个代理池呢!那么用户代理池呢,原理与IP代理池一样,你要模拟不同用户在登陆你要爬的网站)

4、翻人家墙的方式还有什么呢?答案N多,我也在学习中!~好了,开始最基本的三板斧,settings设置

4-1、robots,false, 如果遵循robots协议,人家就会跟你说,我这个网站上那些是不能爬的,所以你要false

4-2、cookie,true,这个不讲了大家应该都知道

4-3、 user_agnet,当然前边提到了你如果用户代理池,可以忽略这部分,还有一种就是setting里边不设置,可以在爬虫中设置

4-4、 pipelines,打开它,要问为什么不?原理很简单,你使用scrapy框架,你就要单纯的认为在pipelines处理你的数据,就是比你自己写的方法处理快,不信!,不信你试试看吧,试完了通知我,我也学习一下

5、items要不要定义呢,取决于你自己的爱好吧,当然如果4-4你要使用了,你就需要定义你的items了

6、开始我们的爬虫吧,以上是我的建议,各人有各人的办法,俗话说:“小鸡不尿尿,各有各的道”

7、分析一下我们要干的事情,登录douban

7-1、拿着你的各个账号多登录几次,What happened?,对相信你的感觉,fu?k,captchar!!!  验证码出现了,不用慌,douban兄弟很仗义没使用特复杂的,只使用了一个不定长的英文当验证码

7-2、使用的知识点,urllib.reques或着 requests 都可以

7-3、xpath 表达式

7-4、识别验证码(我推荐云打码)你即可以当开发者,同时有可以当使用者,关键是还有一个好处,你使用开发者创建一个应该程序拿着你的appkey还能给你返利,可算看到回头钱了

7-5、 下载并识别

urllib.request.urlretrieve(captcha_image[0],filename=localpath)
对下载你的captchar,调用你本地的云打码识别captchar

7-6、  pushi your data

data={
    'source': 'index_nav',
    'form_email':'sqf_163@163.com',
    'form_password':'124567894545',
    'redir':'https://www.douban.com/people/164980594/',
    'login': '登录',
}

return [FormRequest.from_response(response,
                                  # 设置cookie信息
                                  meta={'cookiejar': response.meta['cookiejar']},
                                  # 设置headers信息模拟成浏览器
                                  headers=self.headers,
                                  formdata=data,
                                  callback=self.next
                                  )]

7-7、对哥们你成功了,剩下的^_^,哈哈,哥们你自己干吧,到这里模拟登陆就完成了,下边是图,请客官往下看,你现在就可以说我可以随便登陆我们公司自己开发的网站了“你懂得”

7-8、云打码的平台:http://www.yundama.com/

7-9、我的网盘提供一个python3调用你本地“云打码平台”提供的64位的dll文件,32位的我没有试验,我的机器是64位的,各位可以自己试验证一下

7-10、图来了

















8、等我学习完了机器学校在来写一篇,我还是不想使用云打码的,^_^,^_^

  • 6
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
Scrapy是一个强大的Python爬虫框架,可以用于快速、高效地抓取网页数据。要实现智联招聘的手机验证码模拟登录,可以按照以下步骤进行: 1. 导入必要的库和模块: 在Scrapy项目中,首先需要导入必要的库和模块,例如`scrapy`、`selenium`、`time`等。 2. 创建Scrapy项目: 使用Scrapy命令行工具创建一个新的Scrapy项目,可以使用以下命令: ``` scrapy startproject zhaopin ``` 3. 创建爬虫: 在Scrapy项目中,使用命令行工具创建一个新的爬虫,可以使用以下命令: ``` scrapy genspider zhaopin_spider www.zhaopin.com ``` 4. 编写爬虫代码: 在生成的爬虫文件中,编写爬虫代码。首先需要设置起始URL和回调函数,在回调函数中编写解析页面和提取数据的逻辑。对于验证码模拟登录,可以使用`selenium`库来模拟浏览器行为,例如点击按钮、输入验证码等。 5. 配置中间件: 为了在Scrapy中使用`selenium`库,需要配置一个中间件来处理请求。可以创建一个自定义的中间件,在其中使用`selenium`来处理请求,并将结果返回给Scrapy。 6. 运行爬虫: 在Scrapy项目的根目录下,使用以下命令来运行爬虫: ``` scrapy crawl zhaopin_spider ``` 以上是实现智联招聘的手机验证码模拟登录的大致步骤。具体的实现细节可能会因网站的具体情况而有所不同。在实际操作中,还需要处理验证码的识别、登录状态的维持等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值