如何发起post请求?

代理和cookie:
cookie:豆瓣网个人登录,获取该用户个人主页这个二级页面的页面数据。
如何发起post请求?
一定要对start_requests方法进行重写。
1. Request()方法中给method属性赋值成post
2. FormRequest()进行post请求的发送

简单测试:

在爬虫文件中

import scrapy

class PostdemoSpider(scrapy.Spider):
name = 'postDemo'
#allowed_domains = ['www.baidu.com']
start_urls = ['https://fanyi.baidu.com/sug']
def start_requests(self):
print('start_request')
data ={'kw':'dog'} for url in self.start_urls:
yield scrapy.FormRequest(url=url,formdata=data,callback=self.parse)
def parse(self, response):
print(response.text)

在settings配置

然后执行:

cookie:豆瓣网个人登录,获取该用户个人主页这个二级页面的页面数据。

先创建一个工程doubanPro

cd 到创建的目录下

----------

创建爬虫文件

1. 在命令行下 cd 进入工程所在文件夹

2.scrapy genspider 爬虫文件的名称 起始url

爬虫文件 douban.py

import scrapy
class DoubanSpider(scrapy.Spider):
name = 'douban'
# allowed_domains = ['www.douban.com']
start_urls = ['https://accounts.douban.com/login']
# 重写start_requests方法
def start_requests(self):
for url in self.start_urls:
# 排除验证码的情况 将请求参数封装到字典
data = {
'source': 'movie',
'redir': 'https://movie.douban.com /',
'form_email': '836342406@qq.com',
'form_password': 'douban836342406,.',
'login': '登录' }
yield scrapy.FormRequest(url=url,formdata=data,callback=self.parse)
# 针对个人主页数据进行解析操作
def parseBySecondPage(self,response):
fp = open('second.html','w',encoding='utf-8')
fp.write(response.text) def parse(self, response):
# 登录成功后的页面进行存储
fp = open('main.html','w',encoding='utf-8')
fp.write(response.text)
# 获取当前用户的个人主页
url = 'https://www.douban.com/people/188197188/'
yield scrapy.Request(url=url,callback=self.parseBySecondPage)

执行

代理操作-代理ip的更换

下载中间件作用:拦截请求,可以将请求的ip进行更换。
流程:
1. 下载中间件类的自制定
a) object
b) 重写process_request(self,request,spider)的方法
2. 配置文件中进行下载中间价的开启

新建一个proxyPro的工程

建立proxyDemo.py爬虫文件

1、下载中间件类的自定义

proxyDemo.py

import scrapy
class ProxydemoSpider(scrapy.Spider):
name = 'proxyDemo'
#allowed_domains = ['www.baidu.com']
start_urls = ['https://www.baidu.com/s?wd=ip'] def parse(self, response):
fp = open('proxy.html','w',encoding='utf-8')
fp.write(response.text)

middlewares.py

from scrapy import signals

#自定义一个下载中间件的类,在类中事先process_request(处理中间价拦截到的请求)方法
class MyProxy(object):
def process_request(self,request,spider):
#请求ip的更换
request.meta['proxy'] = "https://118.70.185.14:8080" 代理ip------------>"https://118.70.185.14:8080"

settings.py

# DOWNLOADER_MIDDLEWARES = {
# 'proxyPro.middlewares.ProxyproDownloaderMiddleware': 543,
# }
DOWNLOADER_MIDDLEWARES = {
'proxyPro.middlewares.MyProxy': 543,
}

Scrapy框架--代理和cookie的更多相关文章

  1. 爬虫--requests模块高级(代理和cookie操作)

    代理和cookie操作 一.基于requests模块的cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests ...

  2. Scrapy框架之代理和cookie

    Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式.Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息.无论何时用户 ...

  3. scrapy 伪装代理和fake_userAgent的使用

    伪装浏览器代理 在爬取网页是有些服务器对请求过滤的不是很高可以不用ip来伪装请求直接将自己的浏览器信息给伪装也是可以的. 第一中方法: 1.在setting.py文件中加入以下内容,这是一些浏览器的头 ...

  4. 爬虫之代理和cookie的处理

    代理操作 代理的目的 为解决ip被封的情况 什么是代理 代理服务器:fiddler 为什么使用代理可以改变请求的ip 本机的请求会先发送给代理服务器,代理服务器会接受本机发送过来的请求(当前请求对应的 ...

  5. Jmeter的代理和cookie/session/Token令牌认证

    Jmeter的代理服务器 1.启动Jmeter: 2.“测试计划”中添加“线程组”: 3.“工作台”中添加“HTTP代理服务器”: 4.配置代理服务器:Global Settings下面的端口配置:9 ...

  6. 爬虫--Scrapy框架课程介绍

    Scrapy框架课程介绍: 框架的简介和基础使用 持久化存储 代理和cookie 日志等级和请求传参 CrawlSpider 基于redis的分布式爬虫 一scrapy框架的简介和基础使用 a)    ...

  7. 第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies

    第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录 模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于star ...

  8. 十二 web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies

    模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于start_urls,start_requests()返回的请求会替代start_urls里 ...

  9. scrapy框架使用笔记

    目前网上有很多关于scrapy的文章,这里我主要介绍一下我在开发中遇到问题及一些技巧: 1,以登录状态去爬取(带cookie) -安装内容: brew install phantomjs (MAC上) ...

随机推荐

  1. 使用Mesos和Marathon管理Docker集群

    分布式系统是难于理解.设计.构建 和管理的,他们将比单个机器成倍还要多的变量引入到设计中,使应用程序的根源问题更难发现.SLA(服务水平协议)是衡量停机和/或性能下降的标准,大多数现代应用程序有一个期 ...

  2. folly无锁队列正确性说明

    folly无锁队列是facebook开源的一个无所队列,使用的是单向链表,通过compare_exchange语句实现的多生产多消费的队列,我曾经花了比较多的时间学习memory_order的说明,对 ...

  3. unity3d简介

    一.介绍: Unity3D软件:综合开发环境,实时三维动画等类型的多媒体内容,并支持这些内容在Windows.iOS.Android等多种平台的发布. Mono:脚本编程基于Mono技术,可使用Jav ...

  4. 屏蔽windows快捷键的方法

    using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using ...

  5. gradle本地、远程仓库配置

    本地仓库配置 配置环境变量GRADLE_USER_HOME,并指向你的一个本地目录,用来保存Gradle下载的依赖包. 远程仓库配置 一般Gradle.maven从中央仓库mavenCentral() ...

  6. 光伏电池测控系统python代码

    '''硬件keithley万用表和程控电源visa是VXIplug&play系统联盟制定的一套标准.python实现VISA,形成pyviva模块'''###IV测试系统的部分程序代码 fro ...

  7. (转)Intellij IDEA 快捷键整理

    [常规] Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关 ...

  8. Elasticsearch简介与安装

    搜索 就是在任何场景下,找寻你想要的信息,这个时候,会输入一段你要搜索的关键字,然后就期望找到这个关键字相关的有些信息 垂直搜索 站内搜索 互联网搜索 电商网站,招聘网站,新闻网站,各种app IT系 ...

  9. vue2.0混入mixins

    假设一个项目,首页不需要登录就可以直接进入,但是在首页中有各种其他的模块,这些模块中,有些需要登录权限,而有些则不需要登录权限,所以在进入这些模块的时候,我们都要判断当前的登录状态,那么我们应该怎么组 ...

  10. 安全测试6_Web安全工具第二节(代理抓包分析工具)

    上节课讲了浏览器及扩展,这节课继续来学习下抓包分析. 首先看下下图,了解下代理工具的原理:代理就相当于收费站一样,任何要通过的车辆必须经过它. 浏览器的代理我们可以通过设置进行手动设置代理,或者通过P ...