Scrapy模拟登陆豆瓣

具体实践代码如下:

# -*- coding: utf-8 -*-
import scrapy
import requests
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider,Rule,Request
from scrapy.http import FormRequest
import requests
class DemoSpider(scrapy.Spider):
    name = 'demo'
    #allowed_domains = ['www.douban.com']
    #start_urls = ['https://accounts.douban.com/passport/login_popup?login_source=anony']
    def start_requests(self):
        return [Request(url = 'https://movie.douban.com', meta = {'cookiejar':1}, callback = self.post_login)]
    def post_login(self, response):
        return FormRequest(
            url = 'https://accounts.douban.com/j/mobile/login/basic', 
            method = 'POST',
            formdata = {
                'ck': '',
                'name': '13949094212',
                'password': 'fan13938409755',
                'remember': 'true'
            },
            meta = {'cookiejar':response.meta['cookiejar']},
            dont_filter = True,
            callback = self.after_login
            )
    def after_login(self, response):
        url='https://movie.douban.com'
        yield Request(url = url, meta = {'cookiejar':1}, callback = self.parse_item, dont_filter = True)
    def parse_item(self, response):
        text=response.text
        fileName = '看看是啥'
        with open(fileName,"w",encoding='utf-8') as f:
            f.write(text)
            f.close()
        a=response.css('.top-nav-info .nav-user-account .bn-more span::text').extract_first()
        print("输出会有的")
        print(a)
        print(response.status)
        print(response.url)

这里采取的思路是线将登陆后重定向的网址给下载下来,然后对照一下,好确认。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值