scrapy为不同网站设置不同的代理

在公司项目中,有一些爬虫中需要用的国内代理,有一些需要用到国外代理,有一些不用代理

我测试了三个方案

方案一:

在settings.py中开启代理,然后在spider中重写DOWNLOADER_MIDDLEWARES,但重写无法生效

方案二:

让scrapy切换到不同的settings.py文件,这个手动切换是有效果的,但是我研究了半天不知道如果让程序自动切换,最后放弃

方案三:

在middlewares.py中直接写,通过request.url来判断并启用相应的代理

class ProxyMiddleware(object):
        def process_request(self, request, spider):
            url=request.url
            if ‘baidu.com‘ in url:
                request.meta[‘proxy‘] = ‘这里设置国内http代理‘
            elif ‘facebook.com‘ in url:
                request.meta[‘proxy‘]=‘这里设置国外http代理‘
            else:
                pass

最后是采用的这个方案

时间: 2024-10-17 22:03:58

scrapy为不同网站设置不同的代理的相关文章

【转载】如何阻止网站被恶意反向代理访问(几种级别的解决方案)

最近有人用小站数据,利用反向代理技术,做了个小偷站.用户访问的是他的网址,但实质上内容数据确是我的,这是一起恶意反向代理事件. 什么是反向代理? 先说说正向代理的概念: 正向代理,也就是传说中的代理,他的工作原理就像一个跳板.简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器.这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我.从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并

如何阻止网站被恶意反向代理访问

最近有人用小站数据,利用反向代理技术,做了个小偷站.用户访问的是他的网址,但实质上内容数据确是我的,这是一起恶意反向代理事件. 什么是反向代理? 先说说正向代理的概念: 正向代理,也就是传说中的代理,他的工作原理就像一个跳板.简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器.这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我.从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并

网站设置中的各个功能

1.用户和权限 (1)人员和组: https://technet.microsoft.com/zh-cn/library/cc262690.aspx http://jingyan.baidu.com/article/9f63fb91b149dbc8400f0ea5.html 1. 可以查看所有的组,以及组中所有成员: 2. 通过“新建”,可以添加成员到指定的组中: 3.通过”设置“,可以进行“组设置“--管理用户名和权限等设置 可以进行“查看组权限“--查看此用户组在网站.列表和项目中的权限  

为网站设置icon图标用于显示在浏览器标签页最左侧

icon图标,想必大家对它并不陌生吧,在浏览网页时会看到浏览器标签页的最左侧会有一个小图标,这个正是icon图标.本例为大家介绍下如何为网站设置这个图标 这句话起什么作用 ?复制代码 代码如下: <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> 图标要存放在网页文件夹根目录中一个,固定位置, 但文件名一定要是favicon.ico不能是别的是定义站

设置国内AndriodSDK代理

由于一些原因,Google相关很多服务都无法访问,所以在很多时候我们SDK也无法升级,当然通过技术手段肯定可以解决,但是比较麻烦,而且下载速度也不怎么样. 这里笔者介绍一个国内的Android镜像站,这样升级速度也贼快了.首先我们要感谢东软提供镜像服务器. 近来我发现一个更加简洁的方法: 1.Tools->Options 2.设置如图代理: 这样可以省去手动添加xml URL列表的烦恼. 原文地址:http://www.cnblogs.com/huangjacky/p/4077982.html

禁止IP访问和别人域名绑定或访问自己网站设置

下面的设置仅允许*.ms026.com和www.ms026.com绑定并访问主机NameVirtualHost *<VirtualHost *>ServerName default:80<Location />Order Allow,DenyDeny from all</Location></VirtualHost><VirtualHost *>DocumentRoot ../htdocs/gbServerName www.ms026.comSe

MVC5 网站开发之九 网站设置

网站配置一般用来保存网站的一些设置,写在配置文件中比写在数据库中要合适一下,因为配置文件本身带有缓存,随网站启动读入缓存中,速度更快,而保存在数据库中要单独为一条记录创建一个表,结构不够清晰,而且读写也没有配置文件容易实现.这次要做的是网站的基本信息,数据保存在SiteConfig.config. 目录 MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 MVC5 网站开发之三 数据存储层功能实现 MVC5 网站开发之四 业务逻辑层的架构和基本功能 MVC5 网站开发之五 展示层架

基于NopCommerce的开发框架——缓存、网站设置、系统日志、用户操作日志

最近忙于学车,抽时间将Nop的一些公用模块添加进来,反应的一些小问题也做了修复.另外有园友指出Nop内存消耗大,作为一个开源电商项目,性能方面不是该团队首要考虑的,开发容易,稳定,代码结构清晰简洁也是很重要的一个方面,另外性能的优化也不仅仅是在框架层面.笔者在使用其开发一些中小型的项目,性能还在可以接受范围.前篇——基于nopCommerce的开发框架(附源码):http://www.cnblogs.com/dreling/p/6906688.html. 最新的代码已经同布到GitHub:htt

SharePoint 2013 对象模型操作&quot;网站设置&quot;菜单

在SharePoint的开发中,经常会有客户提到网站操作上的栏目过多,其实,我们除了可以通过Feature的方式添加,还可以通过服务器端对象模型的方式添加:下面,让我用简单的例子,给大家介绍一下: 1.操作SiteAction,添加“Add by Linyu”,隐藏“Site Settings”,效果如下图: 2.我是通过webpart的方式,修改当前页面的菜单,代码截图: 简单说一下,Visible属性是隐藏属性,我们可以设置菜单是否显示:Sequence是菜单在组中的顺序,如果一个group