scrapy登陆界面处理

只要改变爬虫中的设置即可:

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

class WeiSpider(scrapy.Spider):
    name = 'wei'
    allowed_domains = ['weibo.cn']
    # start_urls = ['http://weibo.cn/']
    # 当引擎把start_urls中的内容放入调度器中以后,会调取下载器发起get请求,现在如果需发送post请求,就需要把start_urls注视掉

    # def parse(self, response):
    #     pass
    # 重写一个方法
    def start_requests(self):
        # 这个方法当下载器开始发起请求之前被调用
        # 在这个方法我们可以把下载器截获,改变其原来的请求方式
        login_url = "https://passport.weibo.cn/sso/login" # post请求的接口url
        # post提交的数据
        data = {
            'username': '18610593606',
            'password': 'a123456',
            'savestate': '1',
            'r': 'https://weibo.cn/?luicode=20000174',
            'ec': '0',
            'pagerefer': 'https://weibo.cn/pub/?vt=',
            'entry': 'mweibo',
            'wentry': '',
            'loginfrom': '',
            'client_id': '',
            'code': '',
            'qq': '',
            'mainpageflag': '1',
            'hff': '',
            'hfp': ''
        }

        yield scrapy.FormRequest(url=login_url,formdata=data,callback=self.parse_login)

    def parse_login(self, response):

        # print(response.text)
        # 判断登录是否成功
        if json.loads(response.text)["retcode"] == 20000000:
            print("登录成功!")
            # 访问主页
            main_url = "https://weibo.cn/?since_id=0&max_id=H0moBsJrC&prev_page=1&page=1"
            yield scrapy.Request(url=main_url,callback=self.parse_info)

        else:
            print("登录失败!")

    def parse_info(self, response):
        print(response.text)
        # 在这里解析

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,552评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,519评论 2 59
  • 序言第1章 Scrapy介绍第2章 理解HTML和XPath第3章 爬虫基础第4章 从Scrapy到移动应用第5章...
    SeanCheney阅读 15,236评论 13 61
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,179评论 19 139
  • “如果曾经有那么一个人出现,其他的人都会成为将就,而我不愿将就”不知道有多少万千少女被何以琛这句话感动的痛哭流...
    smile_yan阅读 4,494评论 0 9

友情链接更多精彩内容