如今爬蟲愈來愈難了,一些網站會有相應的反爬蟲措施,例如不少網站會檢測某一段時間某個IP的訪問次數,若是訪問頻率太快以致於看起來不像正常訪客,它可能就會會禁止這個IP的訪問。web
因此咱們須要設置一些代理服務器,每隔一段時間換一個代理,就算IP被禁止,依然能夠換個IP繼續爬取。chrome
網上有不少網站提供免費代理,可是通過測試基本都不可用,因此就付費買代理IP吧。目前市面有飛蟻代理,代理雲,西瓜代理等。下面就介紹一下飛蟻代理使用狀況。json
一、首先註冊一個用戶,註冊過程會送50元,能夠下單測試。瀏覽器
二、下單以下:服務器
這個測試期間有個效期,過時失效,據客服講,正式的期限都比較長,直到用完爲止,cookie
三、生成API連接less
四、測試代碼dom
獲取代理測試
#獲取代理IP def getProxyIPs(self,num=1): ''' 獲取代理IP :param num: 獲取的代理IP的個數 :return: ''' proxy_ip='' try: url = 'http://183.129.244.16:88/open?user_name=sk133_0226153543×tamp=1551166598&' \ 'md5=0ADAF27E30AFD0DD52D7B44F3A5C145F&pattern=json&number=%d' % num response = request.urlopen(url) page = response.read() txt = str(page.decode('utf-8')) dataDict = json.loads(txt) print(dataDict) ports = dataDict.get('port') # domain = dataDict.get('domain') for port in ports: proxy_ip = {'http': "http://" + self.proxy_server + ':' + str(port), 'https': 'https://' + self.proxy_server + ':' + str(port), } except Exception as ex: print(ex) return proxy_ip
利用獲取代理抓取數據網站
def testproxy(self,url, proxy_IP): try: cookie1 = random.choice(self.mycookies) UserAgent = random.choice(self.user_agent_list) header = {'User-Agent': UserAgent} # proxies=proxy_IP , txt = requests.get(url,proxies=proxy_IP ,cookies=cookie1, headers=header).text print(txt) except Exception as ex: print(ex)
另外爲chrome設置代理IP,以Chrome瀏覽器爲例
chrome_options = Options() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') proxy = '181.121.214.16:14140' chrome_options.add_argument('--proxy-server=' + proxy) driver = webdriver.Chrome(chrome_options=chrome_options)
selenium 模塊時,以phantomJS瀏覽器爲例:
driver = webdriver.PhantomJS(service_args = [ '--proxy=183.129.244.16:11310', '--proxy-type=http', '--load-images=false' ])