模拟登陆哦~

使用Cookies模拟登陆

大致思路

1.手动登陆网站
2.获取cookies
3.携带cookies进行访问并抓取数据

import scrapy

class XXX(scrapy.Spider):
    name = 'XX'
    allowed_domains = ['XXXX']
    start_urls = ['XXXX']	#直接使用start_urls是无法登陆一些页面的

	def start_requests(self):
		cookies = 'balbalbalalalala'							#实际登陆之后复制到的网页cookies
		cookies = {i.split('=')[0]:i.split('=')[1] for i in cookies.split(';')}	 #分割之后写成字典格式
		yield scrapy.Request(
				self.start_urls[0],			#网址
				cookies=cookies,			#使用cookies
				callback=self.parse
			)

    def parse(self, response):
    	#编写爬虫,抓取数据
        pass

模拟POST,账号密码登陆

大致思路

1.你需要有目标网站的账户,也就是你需要有账号密码
2.找到POST下的Form Data的各个数据
3.模拟登陆,抓取数据

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

class XXXSpider(scrapy.Spider):
    name = 'XX'
    allowed_domains = ['XXXX.com']
    start_urls = ['XXX']
    
    def parse(self, response):
    	aa=response.xpath('XXX').extract_first()		#获取form data所需数据
    	bb=response.xpath('XXX').extract_first()
    	cc=response.xpath('XXX').extract_first()
        post_data = dict(aa=aa,bb=bb,cc=cc)				#处理成字典
        yield scrapy.FormResquest(						#传递参数
        	'XXXXXX',								
        	callback=self.XXX,
        	formdata=post_data
        	)
       或者:
     def parse(self,response):
		yield scrapy.Request.From_response(		#自动填补formdata
			response,
			formdata={'aa':'aa','bb':'bb'}			#账号密码
			callback=self.XXX
		)

	def XXX(self,response):
		pass

你可能感兴趣的:(python自学笔记,python自学练习)