博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Scrapy中的反反爬、logging设置、Request参数及POST请求
阅读量:5260 次
发布时间:2019-06-14

本文共 1495 字,大约阅读时间需要 4 分钟。

常用的反反爬策略

 通常防止爬虫被反主要有以下几策略:

  • 动态设置User-Agent(随机切换User-Agent,模拟不同用户的浏览器信息。)
  • 禁用cookies(也就是不启用cookies middleware,不向server发送cookies,有些网站通过cookies的使用发现爬虫,可以通过COOKIES_ENABLED控制cookies middleware的开启和关闭)
  • 设置延迟下载(防止访问过于频繁,设置为2s甚至更高)
  • Google Cache和Baidu Cache:如果可能的话,使用谷歌或百度等搜索引擎服务器页面缓存的页面数据。
  • 使用IP池:VPN和IP代理。

scrapy的logging设置

scrapy中Log Levels分为五个级别:

CRITICAL:----严重错误

ERROR:------一般错误

WARNNING---警告信息

INFO------------一般信息

DEBUG--------调试信息

通过setting.py文件,可以进行一下设置,用来配置logging:

LOG_ENABLED:默认为True,启用logging

LOG_ENCODING:默认为utf-8,logging使用编码

LOG_FILE:默认为None,在当前目录下创建logging输出文件的文件名

LOG_LEVEL:默认为DEBUG,log的最低级别

LOG_STDOUT:默认为False,如果为True时,进程所有标准输出(及错误)都将被重定向到log中,例如,执行print("hello"),将会在scrapy的log中显示。

一般情况下,实际设置以下内容就足够:

LOG_FILE=“文件名.log”

LOG_LEVEL="INFO"

Request/Response的重要参数

Request中的主要参数:

url: 就是需要请求,并进行下一步处理的url

callback: 指定该请求返回的Response,由哪个函数处理

method: 请求一般不需要指定,默认为GET方法,可以设置为“GET”,“POST”,"PUT"等,且保证字符串大写。

headers:请求时,包含的头文件。一般不需要。

meta: 比较常用。在不同请求之间传递数据时使用,字典dict类型。

encoding: 使用默认的utf-8就行。

dont_filter:  表明该请求不由调度齐齐过滤。这是当你想使用多次执行相同请求时,忽略重复的过滤。默认为False.

Response中的重要参数:

status: 响应码

_set_body(body): 响应体

_set_url(url):响应url

Scrapy发送POST请求

scrapy中一般使用如下方法发送POST请求:

yield scrapy.FormRequest(url, formdata, callback)

 如果希望程序执行一开始就发送POST请求,可以重写Spider类的start_requests(self)方法,并且再调用start_url中的url

使用FormRequest.from_response()方法,模拟用户登录。

通常网站通过实现对某些表单字段(如数据或登录界面中的认证令牌等)的预填充。使用scrapy抓取网页时,如果需要预填充或重写用户名、用户密码等表单字段时,

可以使用FormRequest.from_response()方法实现。

 

转载于:https://www.cnblogs.com/pythoner6833/p/9045423.html

你可能感兴趣的文章
TCP通讯
查看>>
ecshop /search.php SQL Injection Vul
查看>>
java 字符串截取的几种方式
查看>>
sql多表查询优化
查看>>
IE无法引入css文件
查看>>
线段树的一点归纳
查看>>
LR12.53—使用HP网络导游示例应用程序
查看>>
CentOS无法使用ifconfig和root密码修改
查看>>
Codeforces Round #258 (Div. 2) 容斥+Lucas
查看>>
js实现表格的增删改查
查看>>
ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程
查看>>
JS 中的事件绑定、事件监听、事件委托是什么?
查看>>
增强输出的电路
查看>>
Preference 使用小结
查看>>
java面试题中常见的关于String类问题总结
查看>>
jQuery的基本用法
查看>>
Linux中的定时任务简单操作实例
查看>>
三周第四次课(12月28日) 4.1 df命令 4.2 du命令 4.3/4.4 磁盘分区
查看>>
Java_File类讲解_打印目录树状结构_递归算法
查看>>
大数据的基本概念和Haoop环境搭建
查看>>