登录

scrapy post请求登录

# -*- coding: utf-8 -*-
import scrapy


class ChoutiSpider(scrapy.Spider):
    name = 'chouti'
    allowed_domains = ['chouti.com']
    start_urls = ['http://chouti.com/']
    # 第一次请求之后返回的响应
    # 有的网站在返回登录页面时,会携带一些登录需要的参数,例如csrf_token,xsrf等等
    # 需要先从登录页面中提取所需的参数,再发送post请求

    def parse(self, response):
        '''
        通过发送post请求模拟登录
        :param response:
        :return:
        '''
        # 重新发起一次登陆请求
        # FormRequest() 是scrapy提供的用于发送post请求的类
        yield scrapy.FormRequest(
            url='http://chouti.com/login',
            formdata={
                'phone': '8612344555555',
                'password': '123456',
                'oneMonth': '1'
            },
            callback=self.parse_index
        )

    def parse_index(self, response):
        # 登录成功之后再获取数据
        print(response.text)
        yield scrapy.Request(
            url='http://chouti.com/',
            callback=self.parse_index
        )


scrapy get请求登录

# urlencode 对参数进行编码

from scrapy import urlencode

有图片验证码 使用云打码获取验证码

from Tools import YDMHttp

def parse(self,response):

url = 'http://www.yundama.com/index/captcha'

response = requests.get(url)

with open('captcha.png','w+') as f:

f.write(response.content)

# 创建http对象

ydm = YDMHttp()

# 登录

ydm.login()

# 上传文件接受返回数据

cid,result = ydm.decode('captcha.png',5000,30)

# 准备用户名 密码 utype 验证码


data = {

'username' : 'jiaqianzhen',

'password' : '123456',

'utype':'1',

'vcode':result

}

parmars = urlencode(data)

# 拼接网址

login_url = 'http://www.yundama.com/' + parmars

scrapy.Request(

url=login_url,

callback=self.parse_index)

def parse_link(self, response)

yield

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值