python使用Scrapy框架进行模拟登录(包括借助阿里云服务自动识别验证码)

(1)、前言

原理分析:我们编写代码模拟向网站发出登录请求,也就是提交包含登录信息的表单(用户名、密码等)。

实现方式:当我们想在请求数据时发送post请求,这时候需要借助Request的子类FormRequest来实现,如果想进一步在爬虫一开始时就发送post请求,那么我们需要重写start_request()方法,舍弃原先的start_url()(采用get请求)

回到顶部

(2)、模拟登录人人网(例子1)

1、创建项目

scrapy startproject renren---cd renren--创建爬虫scrapy genspider spider renren.com

2、改写settings.py

python使用Scrapy框架进行模拟登录(包括借助阿里云服务自动识别验证码)

3、改写spider.py

python使用Scrapy框架进行模拟登录(包括借助阿里云服务自动识别验证码)

效果展示(我们成功登录并爬取了包贝儿的人人主页)

python使用Scrapy框架进行模拟登录(包括借助阿里云服务自动识别验证码)

(3)、使用阿里云验证码服务自动识别验证码(服务地址:https://market.aliyun.com/products/57126001/cmapi014396.html#sku=yuncode=839600006)

测试服务:我们同样使用豆瓣登录页面的验证码进行测试:

python使用Scrapy框架进行模拟登录(包括借助阿里云服务自动识别验证码)

 

python使用Scrapy框架进行模拟登录(包括借助阿里云服务自动识别验证码)

运行效果展示:(我们借助阿里云平台成功进行了验证码的自动识别)

python使用Scrapy框架进行模拟登录(包括借助阿里云服务自动识别验证码)

(4)、使用阿里云服务进行验证码验证并模拟登录豆瓣网

1、创建项目scrapy startproject douban---cd douban---创建爬虫scrapy genspider spider doubao.com(树形目录如下:)

python使用Scrapy框架进行模拟登录(包括借助阿里云服务自动识别验证码)

改写settings.py

不遵循robots协议

python使用Scrapy框架进行模拟登录(包括借助阿里云服务自动识别验证码)

设置请求头

python使用Scrapy框架进行模拟登录(包括借助阿里云服务自动识别验证码)

设置爬取时间间隔

python使用Scrapy框架进行模拟登录(包括借助阿里云服务自动识别验证码)

改写spider.py

python使用Scrapy框架进行模拟登录(包括借助阿里云服务自动识别验证码)

运行结果:(部分)

python使用Scrapy框架进行模拟登录(包括借助阿里云服务自动识别验证码)