中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Python爬蟲(chóng)怎么使用http代理IP

本篇內(nèi)容介紹了“Python爬蟲(chóng)怎么使用http代理IP”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)公司成立于2013年,先為千陽(yáng)等服務(wù)建站,千陽(yáng)等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為千陽(yáng)企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

獲取代理IP,代碼如下:

#encoding=utf8

import urllib2

import BeautifulSoup

User_Agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0'

header = {}

header['User-Agent'] = User_Agent

url = 'http://www.xicidaili.com/nn/1'

req = urllib2.Request(url,headers=header)

res = urllib2.urlopen(req).read()

soup = BeautifulSoup.BeautifulSoup(res)

ips = soup.findAll('tr')

f = open("../src/proxy","w")

for x in range(1,len(ips)):

ip = ips[x]

tds = ip.findAll("td")

ip_temp = tds[2].contents[0]+"\t"+tds[3].contents[0]+"\n"

# print tds[2].contents[0]+"\t"+tds[3].contents[0]

f.write(ip_temp)

代碼說(shuō)明:

a).這里我們使用的urllib2模塊,因?yàn)?,這個(gè)請(qǐng)求有點(diǎn)特殊,服務(wù)器會(huì)驗(yàn)證請(qǐng)求中的header(如有疑問(wèn),可參考http的相關(guān)資料)

b).urllib2與urllib的區(qū)別在于,urllib2發(fā)送請(qǐng)求的時(shí)候可攜帶參數(shù)(我現(xiàn)在只用到這點(diǎn)區(qū)別)

c).open()用于打開(kāi)文件,第一個(gè)參數(shù)是文件的路徑可以填絕對(duì)路徑,例如E:\\proxy(”\”在編程中是特殊字符,要用”\\”代表實(shí)際的”\”)。也可以是相對(duì)路徑,比    如”../src/proxy”,就是文件相對(duì)于代碼的位置。第二個(gè)參數(shù)”w”,代表打開(kāi)文件的權(quán)限,w代表寫(xiě)權(quán)限,r代表讀權(quán)限。這個(gè)在很多系統(tǒng)中都通用。比如,linux等

d).for循環(huán),如果之前學(xué)過(guò)java或者其他高級(jí)語(yǔ)言,可能不太習(xí)慣,因?yàn)樗麄冇玫氖莊or(;;)這樣的。python中的for循環(huán),in 表示X的取值,按順序取到in后面的參數(shù)

特別注意:別忘了for語(yǔ)句后面的冒號(hào)(”:”)

c).range函數(shù),代表生成一系列數(shù),如果range(0,6,1),意思就是從0開(kāi)始,到6結(jié)束(不包括6),每次增加1(也就是步長(zhǎng)為1),生成一個(gè)數(shù)組,結(jié)果就是[0, 1, 2, 3, 4, 5]

e).f.write()就是往文件里面寫(xiě)數(shù)據(jù),如果打開(kāi)文件的時(shí)候,沒(méi)有”w”權(quán)限,則無(wú)法寫(xiě)入。

并不是所有的代理都能用,原因有很多,可能是我們所處的網(wǎng)絡(luò)連不到這個(gè)代理,也有可能是這個(gè)代理,連不到我們的目標(biāo)網(wǎng)址,所以,我們要驗(yàn)證一下。以http://ip.chinaz.com/getip.aspx作為目標(biāo)網(wǎng)址為例(這個(gè)是測(cè)試ip地址的網(wǎng)址)代碼如下:

復(fù)制代碼

#encoding=utf8

import urllib

import socket

socket.setdefaulttimeout(3)

f = open("../src/proxy")

lines = f.readlines()

proxys = []

for i in range(0,len(lines)):

ip = lines[i].strip("\n").split("\t")

proxy_host = "http://"+ip[0]+":"+ip[1]

proxy_temp = {"http":proxy_host}

proxys.append(proxy_temp)

url = "http://ip.chinaz.com/getip.aspx"

for proxy in proxys:

try:

res = urllib.urlopen(url,proxies=proxy).read()

print res

except Exception,e:

print proxy

print e

continue

復(fù)制代碼

代碼說(shuō)明:

a).ip = lines[i].strip(“\n”).split(“\t”) 這個(gè)是去掉每行末尾的換行符(也就是”\n”),然后以制表符(也就是”\t”)分割字符串為字符串?dāng)?shù)組

b).proxy_temp = {“http”:proxy_host}其中http代表代理的類型,除了http之外還有https,socket等這里就以http為例

c).urllib.urlopen(url,proxies=proxy) 其中proxies就是代理。以代理模式訪問(wèn)目標(biāo)網(wǎng)址

d).socket.setdefaulttimeout(3)設(shè)置全局超時(shí)時(shí)間為3s,也就是說(shuō),如果一個(gè)請(qǐng)求3s內(nèi)還沒(méi)有響應(yīng),就結(jié)束訪問(wèn),并返回timeout(超時(shí))

“Python爬蟲(chóng)怎么使用http代理IP”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

當(dāng)前名稱:Python爬蟲(chóng)怎么使用http代理IP
標(biāo)題鏈接:http://www.rwnh.cn/article2/jipjic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、軟件開(kāi)發(fā)、標(biāo)簽優(yōu)化、網(wǎng)頁(yè)設(shè)計(jì)公司、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
娄烦县| 承德市| 淮安市| 怀远县| 上栗县| 旬阳县| 邻水| 施秉县| 久治县| 美姑县| 沂南县| 竹溪县| 建阳市| 云安县| 平阴县| 阳信县| 基隆市| 西吉县| 泰来县| 汉阴县| 盐津县| 江阴市| 遵义县| 长岭县| 六盘水市| 临湘市| 洛宁县| 昭通市| 兴安盟| 南汇区| 郯城县| 手机| 石棉县| 巢湖市| 双流县| 新建县| 湖州市| 民权县| 建水县| 察哈| 沧源|