python代理
1. python3 關於http 代理的一些問題
下面是我對瀏覽器請求過程的理解:
1.發送請求,得到響應
2.解析html,請求html裡面的一些資源(圖片、js、css等)
3.得到資源的響應。渲染。
以上在短連接模式下,每個請求都新建一個socket
我就是依照這個想法寫的程序
2. python 驗證代理是否有效
首先要從項目中遇到的一個問題說起。編寫一個python文件test.py,文件test.py內容如下:
#! /usr/bin/python
....
如果在命令行方式執行test.py的方式是:
test.py -in inputfile -out outputfile;或python test.py -in inputfile -out outputfile;
但是因為需要,用exec函數(這里使用execl)去調用這個python文件。在項目中是這樣寫的:
execl(」test.py」,」-in」,」inputfile」,」-out」,」outputfile」,(char*)0);
但執行結果並不是預想的test.py執行,而是啟動了python交互程序,不知道是什麼原因。因為一直以為如果寫一個C程序,比如main。那麼在命令行輸入:main arg1 arg2執行的效果和execl(」main」,」arg1」,」arg2」,(char*)0)的效果應該是一樣的。
3. 如何用python開發snmp的子代理
你好,有一個庫pysnmp,你可以pip install pysnmp來安裝。一個簡單的例子如下。
from pysnmp.entity import engine, config
from pysnmp.entity.rfc3413 import cmdrsp, context
from pysnmp.carrier.asynsock.dgram import udp
from pysnmp.smi import instrum, error
from pysnmp.proto.api import v2c
snmpEngine = engine.SnmpEngine()
config.addSocketTransport(
snmpEngine,
udp.domainName,
udp.UdpTransport().openServerMode(('127.0.0.1', 1161))
)
config.addV1System(snmpEngine, 'my-area', 'public', contextName='my-context')
config.addVacmUser(snmpEngine, 2, 'my-area', 'noAuthNoPriv', (1,3,6), (1,3,6))
snmpContext = context.SnmpContext(snmpEngine)
class FileInstrumController(instrum.AbstractMibInstrumController):
def readVars(self, vars, acInfo=(None, None)):
try:
return [ (o,v2c.OctetString(open('/tmp/%s.txt' % o, 'r').read())) for o,v in vars ]
except IOError:
raise error.SmiError
def writeVars(self, vars, acInfo=(None, None)):
try:
for o,v in vars:
open('/tmp/%s.txt' % o, 'w').write(str(v))
return vars
except IOError:
raise error.SmiError
snmpContext.registerContextName(
v2c.OctetString('my-context'), # Context Name
FileInstrumController() # Management Instrumentation
)
cmdrsp.GetCommandResponder(snmpEngine, snmpContext)
cmdrsp.SetCommandResponder(snmpEngine, snmpContext)
snmpEngine.transportDispatcher.jobStarted(1)
try:
snmpEngine.transportDispatcher.runDispatcher()
except:
snmpEngine.transportDispatcher.closeDispatcher()
raise
4. 如何在python配置動態轉發代理
你好,首先你需要一個middlewares.py,如下:
import random
# 導入settings文件中的UAPOOL
from settings import UAPOOL
# 導入官方文檔對應的HttpProxyMiddleware
from scrapy.contrib.downloadermiddleware.useragent import UserAgentMiddleware
class Uamid(UserAgentMiddleware):
# 初始化 注意一定要user_agent,不然容易報錯
def __init__(self, user_agent=''):
self.user_agent = user_agent
# 請求處理
def process_request(self, request, spider):
# 先隨機選擇一個用戶代理
thisua = random.choice(UAPOOL)
print("當前使用User-Agent是:"+thisua)
request.headers.setdefault('User-Agent',thisua)
在settings.py文件中添加用戶UserAgent的信息
# 設置用戶代理池,那些動態代理就放到這里了
UAPOOL= [
"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"
]
5. 求億牛雲爬蟲代理python的代碼示例
你用的是python的哪個模塊,每個模塊引入的方式不同
6. python 爬蟲設置代理
7. 如何使用伺服器代理 python使用代理伺服器
小鳥雲伺服器niaoyun實例創建好之後,您可以使用以下任意一種方式登錄伺服器:內
遠程桌面連接(,MSTSC):採用這種容方式登錄,請確保實例能訪問公網。如果在創建實例時沒有購買帶寬,則不能使用遠程桌面連接。
管理終端VNC:無論您在創建實例時是否購買了帶寬,只要您本地有網頁瀏覽器,都可以通過管理控制台的管理終端登錄實例。
使用遠程桌面連接(MSTSC)登錄實例
打開開始菜單>遠程桌面連接,或在開始菜單>搜索中輸入mstsc。也可以使用快捷鍵Win+R來啟動運行窗口,輸入mstsc後回車啟動遠程桌面連接。
在遠程桌面連接對話框中,輸入實例的公網IP地址。單擊顯示選項。
輸入用戶名,如小鳥雲默認為niaoyun。單擊允許我保存憑據,然後單擊連接。這樣以後登錄就不需要手動輸入密碼了。
8. 如何在 Python 中正確的代理對象
先來看這段代碼:
import threading
import time
def worker():
print 「worker」
time.sleep(1)
return
for i in xrange(5):
t = threading.Thread(target=worker)
t.start()
這段代碼就使用了多線程,但是沒法傳遞參數,而實際使用多線程,往往是需要傳遞參數的,於是問了一位群里的網友後,知道可以這么寫實現傳遞參數的多線程:
import threading
import time
def worker(number):
print 「worker」
time.sleep(number)
return
for i in xrange(5):
t = threading.Thread(target=worker,args=(i,))
t.start()
第一個參數是線程函數變數,第二個參數args是一個數組變數參數,如果只傳遞一個值,就只需要i, 如果需要傳遞多個參數,那麼還可以繼續傳遞下去其他的參數,其中的逗號不能少,少了就不是數組了,就會出錯。
9. python隨便給了個代理IP居然也能正常訪問,這是為啥
不同的狀態碼代表著不同含義。
200並不代表正常訪問並獲取到返回值。只是表明正確處理了請求而已。
你隨便設置的代理ip有可能真的存在這是一方面,另一方面代理只是鏈接與轉發功能。200的狀態碼也並不能表示代理成功讓你訪問到了目標網址並獲取到了正確的返回信息。
常見的狀態碼有很多,404、400、500等等。
以下資料摘自(csdn博客:https://blog.csdn.net/xiaoxiaode_shu/article/details/80700801)
1開頭的http狀態碼
表示臨時響應並需要請求者繼續執行操作的狀態代碼。
100 (繼續) 請求者應當繼續提出請求。 伺服器返回此代碼表示已收到請求的第一部分,正在等待其餘部分。
101 (切換協議) 請求者已要求伺服器切換協議,伺服器已確認並准備切換。
2開頭的http狀態碼
表示請求成功
200 成功處理了請求,一般情況下都是返回此狀態碼;
201 請求成功並且伺服器創建了新的資源。
202 接受請求但沒創建資源;
203 返回另一資源的請求;
204 伺服器成功處理了請求,但沒有返回任何內容;
205 伺服器成功處理了請求,但沒有返回任何內容;
206 處理部分請求;
3xx (重定向)
重定向代碼,也是常見的代碼
300 (多種選擇) 針對請求,伺服器可執行多種操作。 伺服器可根據請求者 (user agent) 選擇一項操作,或提供操作列表供請求者選擇。
301 (永久移動) 請求的網頁已永久移動到新位置。 伺服器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉到新位置。
302 (臨時移動) 伺服器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求。
303 (查看其他位置) 請求者應當對不同的位置使用單獨的 GET 請求來檢索響應時,伺服器返回此代碼。
304 (未修改) 自從上次請求後,請求的網頁未修改過。 伺服器返回此響應時,不會返回網頁內容。
305 (使用代理) 請求者只能使用代理訪問請求的網頁。 如果伺服器返回此響應,還表示請求者應使用代理。
307 (臨時重定向) 伺服器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求。
4開頭的http狀態碼表示請求出錯
400 伺服器不理解請求的語法。
401 請求要求身份驗證。 對於需要登錄的網頁,伺服器可能返回此響應。
403 伺服器拒絕請求。
404 伺服器找不到請求的網頁。
405 禁用請求中指定的方法。
406 無法使用請求的內容特性響應請求的網頁。
407 此狀態代碼與 401類似,但指定請求者應當授權使用代理。
408 伺服器等候請求時發生超時。
409 伺服器在完成請求時發生沖突。 伺服器必須在響應中包含有關沖突的信息。
410 如果請求的資源已永久刪除,伺服器就會返回此響應。
411 伺服器不接受不含有效內容長度標頭欄位的請求。
412 伺服器未滿足請求者在請求中設置的其中一個前提條件。
413 伺服器無法處理請求,因為請求實體過大,超出伺服器的處理能力。
414 請求的 URI(通常為網址)過長,伺服器無法處理。
415 請求的格式不受請求頁面的支持。
416 如果頁面無法提供請求的范圍,則伺服器會返回此狀態代碼。
417 伺服器未滿足」期望」請求標頭欄位的要求。
5開頭狀態碼並不常見,但是我們應該知道
500 (伺服器內部錯誤) 伺服器遇到錯誤,無法完成請求。
501 (尚未實施) 伺服器不具備完成請求的功能。 例如,伺服器無法識別請求方法時可能會返回此代碼。
502 (錯誤網關) 伺服器作為網關或代理,從上游伺服器收到無效響應。
503 (服務不可用) 伺服器目前無法使用(由於超載或停機維護)。 通常,這只是暫時狀態。
504 (網關超時) 伺服器作為網關或代理,但是沒有及時從上游伺服器收到請求。
505 (HTTP 版本不受支持) 伺服器不支持請求中所用的 HTTP 協議版本。
10. 想用python寫一個代理http的代理程序,有沒有可以參考的源代碼
https://..com/question/429840094070280492
下次問之前你可以考慮先網路下