Scrapy模拟人人网登录

模拟人人网登录

发送 post 请求

有时候想要请求数据的时候发送 post 请求,那么需要使用 Request 的子类 FormRequest 来实现,

如果想要爬虫一开始的时候就发送 post 请求,那么需要在爬虫类中重写 start_requests(self) 方法,

并且不在调用 start_urls 里的 url

# -*- coding: utf-8 -*-
# renren.py
import scrapy


class RenrenSpider(scrapy.Spider):
    name = 'renren'
    allowed_domains = ['renren.com']
    start_urls = ['http://renren.com/']

    def start_requests(self):
        # 人人网登录的接口
        url = "http://www.renren.com/PLogin.do"

        data = {"email": "1315152****", 'password': "hu******"}

        # 模拟登录
        request = scrapy.FormRequest(url, 
                                     formdata=data,
                                     callback=self.parse_page)
        yield request

    def parse_page(self, response):
        # 登录成功后访问个人主页
        url = "http://photo.renren.com/photo/972862448/albumlist/v7?offset=0&limit=40#"
        respons = scrapy.Request(url, 
                                 callback=self.parse_profile
                                )
        yield respons

    def parse_profile(self, response):
        # 将页面存储到本地
        with open('dp.html', 'w', encoding='utf-8') as fp:
            fp.write(response.text)

start_requests() 登录成功后 scrapy 会自动保存cookie 等信息。

Update time: 2020-05-28

results matching ""

    No results matching ""