無法直接連接互聯網,需要使用代理時(Scrapy)
在windows系統中,如果無法直接連接互聯網,需要使用代理時該怎麽做呢?
1. 在powershell中設置proxy
背景:使用公司電腦,無法直接訪問互聯網,想要訪問互聯網就得使用代理,但是在控制面板中設置代理的選項被禁用,個人又具有管理員權限的。
解決方法:
在powershell中或cmd中先運行以下命令:
1)http proxy: set http_proxy=http://host:port
2)https proxy: set https_proxy=https://host:port
2. 針對Scrapy使用代理的方法
背景:僅僅是為了使Scrapy運行中訪問互聯網時使用代理(實質上是使Scrapy中的DownloaderMiddleware部分使用代理)
解決方法:
方法一: 先在powershell中先運行1中的命令,然後再啓動Scrapy程序;
方法二: 在Scrapy中設置,僅對Scrapy生效:
1)在setting.py中啓用HttpProxyMiddleware,如下:
DOWNLOADER_MIDDLEWARES={
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware':1
}
2) 通過request.meta進行proxy:
request=Request(url="http://example.com")
requests.meta['proxy']='host:port'
yield request
3) 若想要隨機使用多個proxy時:
1 Class MySpider(BaseSpider):
2 name = "my_spider"
3 def __init___(self,*args,**kwargs):
4 super(MySpider,self).__init__(*args,**kwargs)
5 self.proxy_pool=['proxy_address1','proxy_address2',...,'proxy_addressN']
6
7 def parse(self,response):
8 if something:
9 yield self.get_Request(url)
10
11 def get_request(self,url):
12 req=Request(url=url)
13 if self.proxy_pool:
14 req.meta['proxy'] = random.choice(self.proxy_pool)
15 return req
方法三:創建代理文件,專門用於設置代理
1)在scrapy project中創建文件 middlewares.py,寫入以下代碼:
1 import base64
2 class ProxyMiddleware(object):
3 #overwrite process request
4 def process_request(self,request,spider):
5 #Set the location of the proxy
6 request.meta['proxy']="http://proxy_ip:port"
7
8 #use the followig lines if your proxy requires authentication
9 proxy_user_pass="Username:Password"
10 #setup basic authentication for the proxy
11 encoded_user_pass = base64.encodestring(proxy_user_pass)
12 request.headers['Proxy-Authorization'] = 'Basic' +encoded_user_pass
2)設置setting.py
1 DOWNLOADER_MIDDLEWARES = {
2 'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware': 110,
3 'project_name.middlewares.ProxyMiddleware': 100,
4 }
無法直接連接互聯網,需要使用代理時(Scrapy)的更多相关文章
- 何解決 LinqToExcel 發生「無法載入檔案或組件」問題何解決 LinqToExcel 發生「無法載入檔案或組件」問題
在自己的主機上透過 Visual Studio 2013 與 IISExpress 開發與測試都還正常,但只要部署到測試機或正式機,就是沒辦法順利執行,卡關許久之後找我協助.我發現錯誤訊息確實很「一般 ...
- win2003的IIS無法使用,又一次安裝提示找不到iisadmin.mfl文件
我的系統是win2003 繁體版 sp2,現在iis無法使用,我同事的也是,也不知道是不是跟在網域中有關係,因為我用虛擬機的繁體系統win2003 R2版iis能够正常使用,不過曾经那台電腦也是在網域 ...
- [转]SQL Server 安全性概論與無法刪除資料庫使用者的解決辦法
經常有人來問我特定 SQL Server 資料庫裡的使用者無法刪除的問題,這問題其實跟 SQL Server 的安全性架構有很大關係,解決這個問題當然還是瞭解觀念的重要性大於知道如何解決問題.除了講解 ...
- [转]解決 IE10 瀏覽器無法使用 ASP.NET 表單驗證登入的問題
今天凌晨在客戶端上線,當程式佈署到正式機後發現我們的網站唯獨只有 IE10 瀏覽器無法成功登入,任何其他瀏覽器版本或使用較低的 IE 版本都可以正常登入,使用 IE 相容性檢視也都可以正常登入,想說會 ...
- 物聯網安全黑客松 IoT Security and Privacy Hackathon
感覺這次黑客松的程度屬於初階,但是節奏很快,內容緊湊.概念部分解說較多,以致實驗時間縮短,有些只能看demo有點遺憾.幸好有video-taped,事後回溯可以看看能不能replicate實驗.總體而 ...
- 在 React Native 中使用 moment.js 無法載入語系檔案
moment.js 是很常見的日期時間 library,友善的 API 與極佳的執行效率是它的兩大賣點.例如 (new Date()).getFullYear(),如果使用 moment.js 我可以 ...
- 修正 Memo 設定為 ReadOnly 後, 無法有複製的功能
问题:当 Memo 設定為 ReadOnly = True 後, 选取一段文字后,無法有複製的功能. 适用:XE6 Android 系统(目前 iOS 还找不到方法) 修正方法: 请将源码 FMX.P ...
- C#-Windows服務以LocalSystem賬戶安裝的話無法獲取我的文檔路徑
如圖,如果Window服務以上圖 Account安裝運行,則無法獲取到 以下路徑: System.Environment.GetFolderPath(Environment.SpecialFolder ...
- 微信小程序wxml無法實現頁面跳轉的問題
wxml的 navigator的url設置后無法跳轉? 檢查要跳轉的頁面是否是在APP.json的tabBar里註冊過,如果是tabBar頁面是不能用wx.navigateTo和wx.Redirect ...
随机推荐
- 说说在 Python 中如何快速复制序列
1 基本用法 把序列乘以一个整数,就会产生一个新序列.这个新序列是原始序列复制了整数份,然后再拼接起来的结果. l=[1,2,3] l2=l * 3 logging.info('l2 -> %s ...
- exp(cos(t)) - 2*cos(4.*t) + (sin(t./12)).^5;图形
clc; clear all; close all; t = linspace(0,24*pi,1000); r = exp(cos(t)) - 2*cos(4.*t) + (sin(t./12)). ...
- Blogs实现导航菜单
#1.隐藏默认导航菜单 #header{display:none;} /*在页面定制CSS里面最前面添加如下代码,最好添加在最前面*/ #2.添加页首html代码 <!-- 添加博客导航栏信息开 ...
- Autofac官方文档翻译--二、解析服务--2隐式关系类型
Autofac 隐式关系类型 Autofac 支持自动解析特定类型,隐式支持组件与服务间的特殊关系.要充分利用这些关系,只需正常注册你的组件,但是在使用服务的组件或调用Resolve()进行类型解析时 ...
- Singleton Pattern -- 不一样的单例模式
Singleton Pattern -- 单例模式 单例模式是用来创建一个只能又一个实例的对象. 单例模式类图如下. 单例模式有两大好处: (1)对于频繁使用的对象,可以省略创建对象所话费的时间,这对 ...
- 如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
这可以使用 DEV 工具来实现.通过这种依赖关系,您可以节省任何更改,嵌入式 tomcat将重新启动.Spring Boot 有一个开发工具(DevTools)模块,它有助于提高开发人员的生产力.Ja ...
- HADOOP单机版配置
1.需要软件 jdk hadoop 将jdk和hadoop解压到自己想要存放的路径 这里我解压到/usr/目录下 sudo tar -zxvf java1.8.tar.gz -C /usr/ hado ...
- JAVADOC 文档注释命令
简介 javadoc命令是用来生成自己API文档的 javadoc参数信息 @author 作者名 @version 版本号 @since 指明需要最早使用的jdk版本 @param 参数名 @ret ...
- hive集群模式安装
hadoop3.2.0 完全分布式安装 hive-3.1.1 #解压缩tar -zxvf /usr/local/soft/apache-hive-3.1.1-bin.tar.gz -C /usr/lo ...
- dp的冗余(选数类)
我们先来看一个例题: 在一个长度为n的序列中选出任意个数的数,要求每m个数中至少一个被选,要求选的数之和最小化. 我们很容易想出用f[i][j]来表示前i个数选的最后一个数是j,也就有 for(int ...