scrapy发起post请求,模拟登录github

一.使用scrapy模拟抓取百度翻译json数据

爬虫文件中的代码

import scrapy
import json

class TranslateSpider(scrapy.Spider):
    name = 'translate'
    # allowed_domains = ['xx.com']
    # start_urls = ['http://xx.com/'] #这里发起的是post请求
    def start_requests(self):
        data = {
    
    
            'kw': 'spide'
        }
        yield scrapy.FormRequest(url='https://fanyi.baidu.com/sug',callback=self.parse,formdata=data)


    def parse(self, response):
        obj = json.loads(response.text)
        value= obj['data'][0]['v']
        print(value)
        pass

start_requests(self) 是一个专门发送post请求的一个方法

data是发起post请求需要的表单数据

scrapy.FromRequest()这个对url发起post请求,里面需要填入url地址,callback函数,data表单

这里最后有一个json,导入json库,就是因为这个网页返回的数据是json数据,然后需要先通过json.loads()方法拿到obj对象,最后通过字典的key获取相应value值就好了

二.scrapy模拟登录github

1.分析网页
在这里插入图片描述

这里可以看到表单需要的数据在登录界面的源代码中,使用input隐藏标签将表单数据隐藏
在这里插入图片描述

抓取思路

1.首先我们需要对登录界面发起一个get请求,拿到我们form表单中所需的name属性值

在这里插入图片描述

2…拿到表单数据后,利用生成器yield 对github发起post请求,并且传入表单数据
在这里插入图片描述

3,将返回的github源码写入一个html文件中
在这里插入图片描述
4.创建scapy项目启动文件运行爬虫文件
在这里插入图片描述
5.拿到github数据的网页源码
在这里插入图片描述

在这里插入图片描述

看到我们上面是localhost登录说明我们已经登陆成功了,这里因为没有直接进入github页面是因为我好久没有登陆github了,你直接输入你邮箱接收的验证码就好了

创建scrapy项目和爬虫文件和基本的配置就不写了,不清楚可以看我scrapy的第一篇文章

猜你喜欢

转载自blog.csdn.net/qq_63713328/article/details/127779889