ip代理

配置个人Ip代理池

时光毁灭记忆、已成空白 提交于 2020-03-24 09:50:19
做爬虫最害怕的两件事一个是被封账户一个是被封IP地址,IP地址可以使用代理来解决,网上有许多做IP代理的服务,他们提供大量的IP地址,不过这些地址不一定都是全部可用,因为这些IP地址可能被其他人做爬虫使用,所以随时可能被一些网站封禁,所以对于一些不可用的IP地址,使用之后就会影响程序运行效率,使用在获得IP地址之后,对这些地址做筛选,去除一些不可用的地址,再进行爬虫,效率就大大提升。通过爬取网上一些高匿IP来自建代理池。 1.准备工作 搭建代理池需要一些库的支持,包括安装Redis数据库,安装requests,apihttp,redis-py,pyquery,Flask,这些工具自行安装 2.搭建代理池,需要干什么 可以通过先下面的图了解一些(这个图网上找的。。。。。),图中可以分为4个部分:获取模块(爬虫调度器,代理获取爬虫),存储模块(Redis数据库),检测模块(代理验证爬虫),接口模块(web api) 3.代理池的实现 存储模块: 使用Redis的有序集合,为什么要使用有序集合,优点:有序集合能够保证数据不重复,有序集合自带分数字段,分数可以重复,能够帮助把每一个元素进行排序,数值小的在前面,数值大的在后面,对于后面的接口模块非常有用,可以通过分数值来判断代理是否可用,100代表最可用,0代表不可用,从接口获取的肯定分数是100的IP地址,保证每一个都可用,提高效率

检测ip代理有效性

浪子不回头ぞ 提交于 2020-02-25 01:16:16
转载及总结 转载: https://xw.qq.com/amphtml/20190428A05ZS200 1.telnet 方法 经过测试,会看到存在以下问题: 即使一些代理商能够用telnet测试过关,可以现实还是不能用的。 2.通过访问http://icanhazip.com/返回的ip来实现测试 注:假如返回的是代理池的ip,表明代理有效,否则实际代理是无效的。 3.访问百度网页,通过返回的网页内容进行判断 经测试,发现存在以下问题: 虽然代理无效,也会返回一个网页,但不是百度,其内容大于5000,因此存在bug。 4.通过访问http://httpbin.org/ip/返回的数据来实现测试 实现方法同2 来源: https://www.cnblogs.com/SmilingEye/p/11154065.html

如何爬取可用的IP代理

六月ゝ 毕业季﹏ 提交于 2020-02-25 01:12:57
上一篇说到对付反爬虫有一个很关键的方法就是使用IP代理,那么我们应该如何获取这些可用的IP代理呢?这里分享一下自己这两天的一些爬取IP代理的心得体会。 1 步骤   1.找到几个提供免费IP代理的网站,获取IP数据源   2.验证对应的IP代理访问出口IP是否跟本机的出口IP一致,得到不一致的IP代理列表   3.根据自身的实验目的验证IP代理的响应速度,进行排序,择优选用 2 具体做法   1.可以上网搜索,有很多,例如西刺、快代理等等   2.可以在 这里 进行验证   3.这个就根据自身爬虫的需要,看是下载东西还是其他的,再进一步测试速度 3 代码 1 # *-* coding: utf-8 *-* 2 import BeautifulSoup 3 import requests 4 import time 5 6 # to check if the ip proxy can work 7 URL_CHECK = 'http://1212.ip138.com/ic.asp' 8 RESPONSE_TIME = 2 9 IP_LOCAL = '120.236.174.144' 10 11 # this is the pages of the website "http://www.ip181.com/daili/1.html" 12 # you can check out in

56-爬虫-ip代理的使用

拜拜、爱过 提交于 2020-02-08 19:00:17
为了防止频繁访问而导致的IP被服务器封掉的可能,可以使用Ip代理来实现。 使用方法,在requests的函数中加个proxies参数即可: page_text = requests.get(url=url, headers=headers, proxies={'http': '60.167.132.19:9999'} ) 可以使用的免费IP代理可以从如下网站获取: 1.快代理: https://www.kuaidaili.com/free/ 2.西刺代理: https://www.xicidaili.com/nn/ 网上还有其它的。 下面再给个抓取免费代理的代码,会将快代理网址的ip存入运行文件相同路径下的data文件夹中。 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2020/2/5 10:42 # @Author : ystraw # @Site : # @File : getIpPool.py # @Software: PyCharm Community Edition # @function: 从快代理获取可用的代理IP # https://www.kuaidaili.com/free/inha/2/ import requests import time import random from bs4

转载的IP代理池

独自空忆成欢 提交于 2020-01-31 09:29:51
# encoding: utf-8 ''' @1.py @ip @Administrator @2019/12/20 @17:08 @PyCharm ''' # coding:utf-8 # version:python3.7 # author:Ivy import requests import re # 爬取代理网站上可以用的代理,建立代理池 class Proxies: def __init__(self): self.proxy_list = [] self.headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/45.0.2454.101 Safari/537.36", 'Accept-Encoding': 'gzip, deflate, sdch', } # 爬取西刺代理的国内高匿代理 def get_proxy_nn(self): proxy_list = [] res = requests.get("http://www.xicidaili.com/nn", headers=self.headers) ip_list = re.findall('<td>(\d+\.\d+\.\d+\.\d+)<

ip代理池(练手)

一世执手 提交于 2020-01-03 22:49:41
利用scrapy框架进行爬取免费代理网站所提供的代理ip # -*- coding: utf-8 -*- import random from time import sleep import redis import scrapy from redis_con import redis_save class IpPoolSpider ( scrapy.Spider ) : name = 'ip_pool' allowed_domains = [ 'www.xiladaili.com/gaoni/' ] start_urls = [ 'http://www.xiladaili.com/gaoni/' ] def parse ( self, response ) : ips = response.xpath ( '//table[contains(@class,"fl-table")]/tbody/tr/td[1]/text()' ) .getall ( ) redis_save ( ips ) next_url = "http://www.xiladaili.com" + response.xpath ( '//ul[contains(@class,"pagination")]/li[last()]/a/@href' ) .get ( ) print ( next_url )

数据采集爬虫ip代理基本原理

拜拜、爱过 提交于 2019-12-18 15:19:54
[河马代理]本文关键词:代理IP,高匿名代理,爬虫IP代理 我们在做爬虫的过程中经常会遇到这样的情况,最初爬虫正常运行,正常抓取数据,一切看起来都是那么正常,然而一杯茶的功夫可能就会出现错误,比如403 Forbidden。 这时候打开网页一看,可能会看到“您的IP访问频率太高”这样的提示。出现这种现象的原因是网站采取了一些反爬虫措施。出现这种情况有效的解决方式就是使用 代理IP 比如,服务器会检测某个IP在单位时间内的请求次数,如果超过了这个阈值,就会直接拒绝服务,返回一些错误信息,这种情况可以称为封IP。 既然服务器检测的是某个IP单位时间的请求次数,那么借助某种方式来伪装我们的IP,让服务器识别不出是由我们本机发起的请求,不就可以成功防止封IP了吗? 一种有效的方式就是使用ip代理,后面会详细说明ip代理的用法。在这之前,需要先了解下代理的基本原理,它是怎样实现IP伪装的呢? 基本原理 代理实际上指的就是代理服务器,英文叫作proxy server,它的功能是代理网络用户去取得网络信息。 形象地说,它是网络信息的中转站。 在我们正常请求一个网站时,是发送了请求给Web服务器,Web服务器把响应传回给我们。 如果设置了代理服务器,实际上就是在本机和服务器之间搭建了一个桥,此时本机不是直接向Web服务器发起请求,而是向代理服务器发出请求,请求会发送给代理服务器

[爬虫]一个易用的IP代理池

爷,独闯天下 提交于 2019-12-17 14:23:09
一个易用的IP代理池 - stand 写爬虫时常常会遇到各种反爬虫手段, 封 IP 就是比较常见的反爬策略 遇到这种情况就需要用到代理 IP, 好用的代理通常需要花钱买, 而免费的代理经常容易失效, 所以就需要自己搭建 IP 代理池, 来获取免费高效的代理 IP. 下面介绍一个自己写的 IP 代理池, 欢迎 star lin-zone/stand 安装 pip install stand 启动 stand 启动后, 爬虫会从代理网站抓取 IP, 并将数据保存在名为 stand.db 的 SQLite 数据库中, 等待爬虫抓取一定数量 IP 后, 即可使用代理 使用 >>> from stand import get_proxy >>> proxy = get_proxy() >>> print(proxy) '103.133.222.151:8080' 在 Scrapy 中使用 stand 作为代理 import scrapy from scrapy.crawler import CrawlerProcess class TestSpider(scrapy.Spider): name = 'test' start_urls = ['https://api.ip.sb/ip'] def parse(self, response): print(response.meta['proxy

教你如何快速构建ip代理池!

匿名 (未验证) 提交于 2019-12-03 00:01:01
做爬虫时,遇到访问太频繁IP被封是难以避免的,而本地单个IP是不足以进行大规模爬取,并且自己并不想购买付费代理,在这里构建一个IP代理池是非常有必要的。 代理池主要由5部分组成:ProxyGeter(代理获取模块)、RedisClient(代理管理模块,负责存储、删除、取出等基本操作)、Texter(代理可用性测试模块)和Web_Api(用户获取模块)。 ProxyGeter 从几个代理网站爬取最新的代理,并把代理存储到redis数据库中 RedisClient 主要实现ip的删、减、增等基本操作, 采用reids的几方面原因如下: redis的hash数据结构可以为IP的有效性(根据可用性分为0-100)进行评分; redis提供的key-value更方便地储存IP; 对于IP的存储、提取、删除、查询数量等功能会更加地快捷; Texter 模块的主要目的是检测ip的可用性。提前设置好需要检测的网站站点,然后随机取出数据库中的代理,用获取到的ip来访问目标站点: 若访问无效,首先降低ip的分数等级(减10),其次做判断:若该ip的分数等级低于10分直接从reids数据库中删除; 若访问有效,首先增加ip的分数等级(加10),其次更新reids中该ip的分数等级; Web_Api 为了让用户获取可用性ip更加方便一点,这里利用flask框架做了一个API

使用tinyproxy进行ip代理

匿名 (未验证) 提交于 2019-12-02 23:57:01
爬虫经常用到ip代理。解决方案无非几种: 1.网络上寻找一些免费代理,优点:免费不限量;缺点:可用性较低,验证费时间费资源。一些有免费代理的网站, 西刺代理 , 站大爷 , 89免费代理 等等,网上可以搜出一大堆。 2.购买代理ip,和找免费的差不多,一般有免费代理ip的网站基本都有收费的api。优点:可用性较高,较稳定。缺点:要钱。严格说,这个也不算缺点,要钱很多人也能接受,带来的方便还是很大程度的。 3.自己搭建ip代理,自己租服务器自己搭。优点:稳定,可控。缺点:麻烦,成本高。 暂时接触过的就这几种,不同的场景使用不同的方案。 目前有需要一个稳定ip,于是整一台服务器自己搭一下就可以。搭建代理也有很多种协议,工具,这里使用tinyproxy,简单方便。 安装配置流程: 一、首先安装tinyproxy 执行命令 yum -y install tinyproxy 找不到安装包的时候可以装一下epel。 安装 yum install epel-release 二、配置 编辑tinyproxy的配置文件 vi /etc/tinyproxy/tinyproxy.conf 1.更改端口,默认8888。可以更改为自己喜欢的端口,也可不修改,直接使用8888端口。 找到"Port"字样,修改紧跟其后的数字即可。 2.修改允许连接代理的ip。默认只允许本地。 找到"Allow"字样