现在爬虫越来越难了,一些网站会有相应的反爬虫措施,例如很多网站会检测某一段时间某个IP的访问次数,如果访问频率太快以至于看起来不像正常访客,它可能就会会禁止这个IP的访问。
所以我们需要设置一些代理服务器,每隔一段时间换一个代理,就算IP被禁止,依然可以换个IP继续爬取。
网上有很多网站提供免费代理,但是经过测试基本都不可用,所以就付费买代理IP吧。目前市面有飞蚁代理,代理云,西瓜代理等。下面就介绍一下飞蚁代理使用情况。
1、首先注册一个用户,注册过程会送50元,可以下单测试。
2、下单如下:
这个测试期间有个效期,过期失效,据客服讲,正式的期限都比较长,直到用完为止,
3、生成API链接
4、测试代码
获取代理
#获取代理IP def getProxyIPs(self,num=1): ''' 获取代理IP :param num: 获取的代理IP的个数 :return: ''' proxy_ip='' try: url = 'http://182.129.244.16:88/open?user_name=53543×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' ])