常用的反反爬策略

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

  • 动态设置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()方法实现。

Scrapy中的反反爬、logging设置、Request参数及POST请求的更多相关文章

  1. scrapy中使用selenium来爬取页面

    scrapy中使用selenium来爬取页面 from selenium import webdriver from scrapy.http.response.html import HtmlResp ...

  2. python框架Scrapy中crawlSpider的使用——爬取内容写进MySQL

    一.先在MySQL中创建test数据库,和相应的site数据表 二.创建Scrapy工程 #scrapy startproject 工程名 scrapy startproject demo4 三.进入 ...

  3. Scrapy中集成selenium

    面对众多动态网站比如说淘宝等,一般情况下用selenium最好 那么如何集成selenium到scrapy中呢? 因为每一次request的请求都要经过中间件,所以写在中间件中最为合适 from se ...

  4. 爬取豆瓣电影储存到数据库MONGDB中以及反反爬虫

    1.代码如下: doubanmoive.py # -*- coding: utf-8 -*- import scrapy from douban.items import DoubanItem cla ...

  5. scrapy反反爬虫

    反反爬虫相关机制 Some websites implement certain measures to prevent bots from crawling them, with varying d ...

  6. scrapy反反爬虫策略和settings配置解析

    反反爬虫相关机制 Some websites implement certain measures to prevent bots from crawling them, with varying d ...

  7. python高级—— 从趟过的坑中聊聊爬虫、反爬以及、反反爬,附送一套高级爬虫试题

    前言: 时隔数月,我终于又更新博客了,然而,在这期间的粉丝数也就跟着我停更博客而涨停了,唉 是的,我改了博客名,不知道为什么要改,就感觉现在这个名字看起来要洋气一点. 那么最近到底咋不更新博客了呢?说 ...

  8. python爬虫---详解爬虫分类,HTTP和HTTPS的区别,证书加密,反爬机制和反反爬策略,requests模块的使用,常见的问题

    python爬虫---详解爬虫分类,HTTP和HTTPS的区别,证书加密,反爬机制和反反爬策略,requests模块的使用,常见的问题 一丶爬虫概述       通过编写程序'模拟浏览器'上网,然后通 ...

  9. python反反爬,爬取猫眼评分

    python反反爬,爬取猫眼评分.解决网站爬取时,内容类似:$#x12E0;样式,且每次字体文件变化.下载FontCreator . 用FontCreator打开base.woff.查看对应字体关系 ...

随机推荐

  1. Java8系列 (四) 静态方法和默认方法

    静态方法和默认方法 我们可以在 Comparator 接口的源码中, 看到大量类似下面这样的方法声明 //default关键字修饰的默认方法 default Comparator<T> t ...

  2. background-origin背景图片定位

    语法 background-origin: padding-box|border-box|content-box; background-Origin属性指定background-position属性 ...

  3. tomcat的虚拟路径的配置

    在一些项目中有时候需要把一些文件(例如图片.视频)存储在硬盘上的,如果是把文件在放在硬盘上的话,怎么才能访问到这些文件昵. 好了.下面就为大家讲讲如何利用tomcat 虚拟路径访问硬盘上的文件.总共有 ...

  4. SpringBoot系列:Spring Boot异步调用@Async

    在实际开发中,有时候为了及时处理请求和进行响应,我们可能会多任务同时执行,或者先处理主任务,也就是异步调用,异步调用的实现有很多,例如多线程.定时任务.消息队列等, 这一章节,我们就来讲讲@Async ...

  5. 【重构】AndroidStudio中代码重构菜单Refactor功能详解

    代码重构几乎是每个程序员在软件开发中必须要不断去做的事情,以此来不断提高代码的质量.Android Stido(以下简称AS)以其强大的功能,成为当下Android开发工程师最受欢迎的开发工具,也是A ...

  6. Rust 中的类型转换

    1. as 运算符 as 运算符有点像 C 中的强制类型转换,区别在于,它只能用于原始类型(i32 .i64 .f32 . f64 . u8 . u32 . char 等类型),并且它是安全的. 例 ...

  7. [翻译]——MySQL 8.0 Histograms

    前言: 本文是对这篇博客MySQL 8.0 Histograms的翻译,翻译如有不当的地方,敬请谅解,请尊重原创和翻译劳动成果,转载的时候请注明出处.谢谢! 英文原文地址:https://lefred ...

  8. 入职第一天,装环境 .Ubuntu装jdk1.8,装idea 及tomcat

    入职第一天,和之前公司的开发环境感觉天壤之别了,不过万变不离其宗,之前公司eclipse+widows.所以很少玩linux了.今天来就干了一件事.装环境 jdk安装. 下载地址:https://ww ...

  9. [考试反思]1019csp-s模拟测试80(a):天遣

    A组题,所以把榜粘全了. 第6名,被卡在刚好正中间. 我最近干什么伤天害理的事了?(例如说没有在skyh去上厕所的时候捶他) 上来看T1,非常贴心出题人直接把递推式子给你了,然后就和斐波数的递推一样了 ...

  10. 「2019.8.9 考试」神仙的dp总让人无所适从

    T1是个容斥,我掐手指一算他为了卡容斥的正确性,绝不会把n和m出的很相近($O(n^2)$算法在nm相等的时候达到最高时间复杂度),不然就太好做了,于是开了特判+各种卡常和滚动数组优化,卡到了70分, ...