scrapy爬虫案例_Scrapy 爬虫模拟登陆的3种策略

Scrapy 爬虫模拟登陆的3种策略

1 Scrapy 爬虫模拟登陆策略

前面学习了爬虫的很多知识,都是分析 HTML、json 数据,有很多的网站为了反爬虫,除了需要高可用代理 IP 地址池外,还需要登录,登录的时候不仅仅需要输入账户名和密码,而且有可能验证码,下面就介绍 Scrapy 爬虫模拟登陆的几种策略。

1.1 策略一:直接POST请求登录

前面介绍的爬虫 scrapy 的基本请求流程是 start_request 方法遍历 start_urls 列表,然后 make_requests_from_url方法,里面执行 Request 方法,请求 start_urls 里面的地址,使用的是 GET 方法,由于直接使用用户名和密码可以登录,使用 POST 方法进行登录。

例子:人人网登录

登录地址:http://www.renren.com/PLogin.do

944371ed2a8c66aaf7c19c78db5299b9.png

案例步骤:

第一步:创建项目。

在 dos下切换到目录

D:scrapy_project

1fd731c75f61052df2182ee53822f357.png

新建一个新的爬虫项目:scrapy startproject renren

078254c34945647670621c174a3bec2b.png
525084dc19c85d548c375f4862786a03.png

第二步:创建爬虫。

在 dos下切换到目录。

D:scrapy_projectenrenenrenspiders

用命令 scrapy genspider renren1 " renren.com" 创建爬虫。

bca09ae71243ec30f974956522deebfd.png

第三步: 通过浏览器登录人人网,使用 fiddler 抓包抓取登录 post 请求的 data。

902f388e548ff629e41f4e8676a50c56.png

第四步:编写爬虫文件。

import scrapy

# 登录只需要提供 post 数据就可以登录的,就可以用这种方法,

# 下面示例:post 数据是账户密码

class Renren1Spider(scrapy.Spider):

name = "renren1"

allowed_domains = ["renren.com"]

def start_requests(self):

url = 'http://www.renren.com/PLogin.do'

# FormRequest 是 Scrapy 发送 POST 请求的方法

yield scrapy.FormRequest(

url = url,

formdata = {"email" : "13554799060

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页