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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值