真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python爬蟲怎么使用http代理IP

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

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

獲取代理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)

代碼說明:

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

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

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

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

特別注意:別忘了for語句后面的冒號(”:”)

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

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

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

代碼說明:

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就是代理。以代理模式訪問目標(biāo)網(wǎng)址

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

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


網(wǎng)站題目:Python爬蟲怎么使用http代理IP
文章網(wǎng)址:http://weahome.cn/article/jipjic.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部