Python爬蟲(chóng)設(shè)置ip代理過(guò)程解析
1、get方式:如何為爬蟲(chóng)添加ip代理,設(shè)置Request header(請(qǐng)求頭)
import urllib import urllib.request import urllib.parse import random import time from fake_useragent import UserAgent ua = UserAgent() url = "http://www.baidu.com" ######################################################## ''' 設(shè)置ip代理 iplist = [ '127.0.0.1:80'] #可自行上網(wǎng)找一些代理 proxy_support = urllib.request.ProxyHandler({'http':random.choice(iplist)}) #也可以設(shè)置為https,要看你的代理支不支持 opener = urllib.request.build_opener(proxy_support) ''' ######################################################## '''無(wú)ip代理''' opener = urllib.request.build_opener() '''f12查看請(qǐng)求頭添加即可,不一定都需要全添加↓↓↓''' opener.addheaders = [('Host', 'newtab.firefoxchina.cn'), ('User-Agent',ua.random), ('Accept-Encoding','deflate, br'), ('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'), ('Accept-Language', 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2'), ('Connection', 'keep-alive'), ('Upgrade-Insecure-Requests',1), ('Cookie', '__gads=ID=138080209be66bf8:T=1592037395:S=ALNI_Ma-g9wHmfxFL4GCy9veAjJrJRsNmg; Hm_lvt_dd4738b5fb302cb062ef19107df5d2e4=1592449208,1592471447,1592471736,1594001802; uid=rBADnV7m04mi8wRJK3xYAg=='), ] urllib.request.install_opener(opener) while True: try: response = urllib.request.urlopen(url) break except Exception as e: print("錯(cuò)誤信息:" + str(e)) time.sleep(3) html = response.read().decode("utf-8") print(html)
2、post方式添加載荷(此處是打比方),修改urllib.request.install_opener(opener)以下的代碼即可
urllib.request.install_opener(opener) # data = {} #當(dāng)頁(yè)面提交數(shù)據(jù)是有載荷但是載荷內(nèi)容為空時(shí),必須以data = {}傳參,不然無(wú)法獲取網(wǎng)頁(yè)數(shù)據(jù) data = {'_csrf':'請(qǐng)把', 'collection-name':'載荷的參數(shù)', 'description':'以這種形式', '_csrf':'裝載' } data = urllib.parse.urlencode(data).encode('utf-8') req = urllib.request.Request(url,data) while True: try: response = urllib.request.urlopen(req) break except Exception as e: print("錯(cuò)誤信息:" + str(e)) time.sleep(3) html = response.read().decode("utf-8")
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python利用插值法對(duì)折線進(jìn)行平滑曲線處理
這篇文章主要為大家詳細(xì)介紹了python利用插值法對(duì)折線進(jìn)行平滑曲線處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12python實(shí)現(xiàn)字符串和日期相互轉(zhuǎn)換的方法
這篇文章主要介紹了python實(shí)現(xiàn)字符串和日期相互轉(zhuǎn)換的方法,涉及Python中time和datetime函數(shù)使用技巧,需要的朋友可以參考下2015-05-05python3 自動(dòng)識(shí)別usb連接狀態(tài),即對(duì)usb重連的判斷方法
今天小編就為大家分享一篇python3 自動(dòng)識(shí)別usb連接狀態(tài),即對(duì)usb重連的判斷方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07基于Python編寫(xiě)簡(jiǎn)單實(shí)用的日志裝飾器
在寫(xiě)代碼的時(shí)候,往往會(huì)漏掉日志這個(gè)關(guān)鍵因素,導(dǎo)致功能在使用的時(shí)候出錯(cuò)卻無(wú)法溯源。這個(gè)時(shí)候只要利用日志裝飾器就能解決,本文將用Python自制一個(gè)簡(jiǎn)單實(shí)用的日志裝飾器,需要的可以參考一下2022-05-05使用keras時(shí)input_shape的維度表示問(wèn)題說(shuō)明
這篇文章主要介紹了使用keras時(shí)input_shape的維度表示問(wèn)題說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06Python代碼使用 Pyftpdlib實(shí)現(xiàn)FTP服務(wù)器功能
FTP 服務(wù)器,在此之前我都是使用Linux的vsftpd軟件包來(lái)搭建FTP服務(wù)器的,現(xiàn)在發(fā)現(xiàn)了利用pyftpdlib可以更加簡(jiǎn)單的方法即可實(shí)現(xiàn)FTP服務(wù)器的功能 ,需要的朋友可以參考下2019-07-07