scrapy 避免被ban

1、settings.py

COOKIES_ENABLED = False
DOWNLOAD_DELAY = 3
ROBOTSTXT_OBEY = False

ip代理池设置
IPPOOL = [{‘ipadder‘:‘1.1.1.1‘},        {‘ipadder‘:‘2.1.1.1‘},        {‘ipadder‘: ‘1.3.1.1‘},        {‘ipadder‘: ‘1.1.1.4‘},        ]
DOWNLOADER_MIDDLEWARES = {   #‘Autopjt.middlewares.MyCustomDownloaderMiddleware‘: 543,   ‘scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware‘:123,   ‘Autopjt.middlewares.IPPOOLS‘:125,}

2、middlewares.py
import random
from Autopjt.settings import IPPOOL
from scrapy.contrib.downloadermiddleware.httpproxy import HttpProxyMiddleware

class IPPOOLS(HttpProxyMiddleware):
    def __init__(self,ip=‘‘):
        self.ip = ip
    def process_request(self, request, spider):
        thisip = random.choice(IPPOOL)
        # 将对应的IP实际添加为具体代理,用该ip进行爬取
        request.meta[‘proxy‘]=‘http://‘ + thisip[‘ipaddr‘]

UA池

UAPOOL = [‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36‘,        ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.103 Safari/537.36‘,        ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.104 Safari/537.36‘,]
DOWNLOADER_MIDDLEWARES = {   #‘Autopjt.middlewares.MyCustomDownloaderMiddleware‘: 543,   #‘scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware‘:123,   #‘Autopjt.middlewares.IPPOOLS‘:125,   ‘scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware‘:2,   ‘Autopjt.middlewares.Uamid‘:1}
middlewares.py
import random
from Autopjt.settings import UAPOOL
from scrapy.contrib.downloadermiddleware.useragent import UserAgentMiddleware

class Uamid(UserAgentMiddleware):
    def __init__(self,ua=‘‘):
        self.ua = ua
    def process_request(self, request, spider):
        thisua = random.choice(UAPOOL)
        request.headers.setdefault(‘User-Agent‘,thisua)
时间: 2024-11-08 15:54:28

scrapy 避免被ban的相关文章

如何让你的scrapy爬虫不再被ban

前面用scrapy编写爬虫抓取了自己博客的内容并保存成json格式的数据(scrapy爬虫成长日记之创建工程-抽取数据-保存为json格式的数据)和写入数据库(scrapy爬虫成长日记之将抓取内容写入mysql数据库).然而,这个爬虫的功能还是过于弱小,一旦目标网站设置了爬虫的限制,我们的爬虫也就失效了.因此这里重点讲述一下如何避免scrapy爬虫被ban.本门的所有内容都是基于前面两篇文章的基础上完成的,如果您错过了可以点击此回看:scrapy爬虫成长日记之创建工程-抽取数据-保存为json格

如何让你的scrapy爬虫不再被ban之二(利用第三方平台crawlera做scrapy爬虫防屏蔽)

我们在做scrapy爬虫的时候,爬虫经常被ban是常态.然而前面的文章如何让你的scrapy爬虫不再被ban,介绍了scrapy爬虫防屏蔽的各种策略组合.前面采用的是禁用cookies.动态设置user agent.代理IP和VPN等一系列的措施组合来防止爬虫被ban.除此以外官方文档还介绍了采用Google cache和crawlera的方法.这里就着重介绍一下如何利用crawlera来达到爬虫不被ban的效果.crawlera是一个利用代理IP地址池来做分布式下载的第三方平台,除了scrap

爬虫框架Scrapy之Downloader Middlewares

反反爬虫相关机制 Some websites implement certain measures to prevent bots from crawling them, with varying degrees of sophistication. Getting around those measures can be difficult and tricky, and may sometimes require special infrastructure. Please consider

scrapy爬取斗图表情

用scrapy爬取斗图表情,其实呀,我是运用别人的博客写的,里面的东西改了改就好了,推存链接" http://www.cnblogs.com/jiaoyu121/p/6992587.html " 首先建立项目:scrapy startproject doutu 在scrapy框架里先写自己要爬取的是什么,在item里面写. import scrapyclass DoutuItem(scrapy.Item): # define the fields for your item here

Python爬虫Scrapy框架入门(2)

本文是跟着大神博客,尝试从网站上爬一堆东西,一堆你懂得的东西 附上原创链接: http://www.cnblogs.com/qiyeboy/p/5428240.html 基本思路是,查看网页元素,填写xpath表达式,获取信息.自动爬取策略是,找到翻页网页元素,获取新链接地址,执行翻页.网页分析部分不再赘述,原博讲的很好很清楚,很涨姿势 基于拿来主义,我们只需要知道怎么更改Scrapy框架就行了~ items.py: import scrapy class TestprojItem(scrapy

2017-02-08 01:19:09 Scrapy: pk5_mylist

[TOC] ###2017-02-08 01:19:09 Scrapy: pk5_mylist.md > Save the records with MongoDB #### settings.py ``` # -*- coding: utf-8 -*- BOT_NAME = 'bengbeng' SPIDER_MODULES = ['bengbeng.spiders'] NEWSPIDER_MODULE = 'bengbeng.spiders' ROBOTSTXT_OBEY = True IT

Python之Scrapy爬虫框架安装及简单使用

题记:早已听闻python爬虫框架的大名.近些天学习了下其中的Scrapy爬虫框架,将自己理解的跟大家分享.有表述不当之处,望大神们斧正. 一.初窥Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫. 本文档将

初学scrapy之爬取wooyun.org网站

刚开始学习python,对于在网上爬取数据,还处于死搬硬套代码的阶段.不废话,直接开始我的第一个爬取之旅. 1.创建项目 1)创建项目命令 scrapy startproject wooyun 该命令会在当前目录下创建一个wooyun文件夹 2)定义items.py Scrapy提供了Item类,用来保存从页面爬取的数据.有点类似于Java中的反序列化,只不过反序列化是将字节流转化为Java对象,而Item是一个通用的类,通过key/value的形式存取数据.Item类中的所有字段通过 scra

Scrapy爬虫笔记

Scrapy是一个优秀的Python爬虫框架,可以很方便的爬取web站点的信息供我们分析和挖掘,在这记录下最近使用的一些心得. 1.安装 通过pip或者easy_install安装: 1 sudo pip install scrapy 2.创建爬虫项目 1 scrapy startproject youProjectName 3.抓取数据 首先在items.py里定义要抓取的内容,以豆瓣美女为例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 from sc