無法直接連接互聯網,需要使用代理時(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 ...
随机推荐
- MySQL高级部分理论知识细讲
文章目录 一.数据库分区.分表.分库.分片 YesOk ,大家好 ,我是小刘,许久不见,甚是想念 ,小刘今天来带大家学习 分库分表的基础知识 1.1 单机数据库的瓶颈 单个表数据量越大,读写锁,插入操 ...
- js深克隆与浅克隆
定义: 浅克隆: 克隆对象的一层属性, 如果对象还有对象的话,里面的对象没有进行克隆,只是把地址给了别人.也可以理解为只是简单的克隆了躯体,但是没有得到其灵魂: 深克隆:克隆对象的多层属性,对象里面还 ...
- 深入理解MySQL系列之索引
索引 查找一条数据的过程 先看下InnoDB的逻辑存储结构: 表空间:可以看做是InnoDB存储引擎逻辑结构的最高层,所有的数据都存放在表空间中.默认有个共享表空间ibdata1.如果启用innodb ...
- NPOI导入excel
1.引用NPOI: using NPOI.HSSF.UserModel;using NPOI.HSSF.Util;using NPOI.SS.UserModel; 2.导出excel 1 privat ...
- vscode常用快捷键和插件
常用快捷键 快捷键 用途 ctrl+· 打开终端 shift+alt+A 块注释 ctrl+/ 行注释 ctrl+shift+F 文件夹查找 ctrl+enter 下方插入一行 ctrl+shift+ ...
- 连接数据库查询 将查询结果写入exce文件中
package com.cn.peitest.connectDatabase; import java.io.File; import java.lang.reflect.Field; import ...
- BPF的可移植性和CO-RE (Compile Once – Run Everywhere)
BPF的可移植性和CO-RE (Compile Once – Run Everywhere) 在上一篇文章中介绍了提高socket性能的几个socket选项,其中给出了几个源于内核源码树中的例子,如果 ...
- DHCP.md
DHCP 主配置文件 从 /usr/share/doc/dhcp 复制 dhcpd.conf.sample 到/etc/dhcp下 ...
- Java 并发编程要点
使用线程 有三种使用线程的方法: 实现 Runnable 接口: 实现 Callable 接口: 继承 Thread 类. 实现 Runnable 和 Callable 接口的类只能当做一个可以在线程 ...
- Both Dolby Atmos driver and API need to be installed问题的一个解决方法
问题的原因在于缺少以下两个部分: Dolby Atmos driver:指你的声卡驱动中自带的杜比文件 如果驱动里没有,说明你的硬件可能不支持杜比,或者驱动太老没有包含杜比. Dolby Atmos ...