Python爬取神鸡免费代理ip(二)
2019年5月11日 16:45
558
58
2 从数据库中取出有效
代理IP
并格式化好
我们先定义一个类,方便后面导入获取可用的代理IP
class GetIp(object):
首先我们先定义一个方法判断代理IP是否可用,具体方法就是通过测试百度的服务器判断 状态码 是否在200到300之间
def judge_ip(self, ip, port, proxy_type):
"""
判断是否有效
:param ip:
:param port:
:param proxy_type:
:return: bool
"""
http_url = "
http://www.baidu.com
"
proxy_ip = "://:".format(proxy_type, ip, port)
try:
proxy_dict = {
proxy_type: proxy_ip
}
response = requests.get(http_url, proxies=proxy_dict)
except Exception as e:
print("invalid ip and port", ip, port, proxy_type, e)
self.del_ip(ip)
return False
else:
code = response.status_code
if 200
print("有效", ip, port, proxy_type)
return True
else:
self.del_ip(ip)
return False
删除无效的代理IP
def del_ip(self, ip):
"""删除无效ip"""
sql = """delete from ip_info WHERE ip='{}'""".format(ip)
执行
cus.execute(sql)
提交
conn.commit()
随机获取一个代理IP,获取时先判断是否能用,不能则删除,继续随机获取,直到获取成功
def get_random_ip(self):
"""
获取随机ip
:return: (ip, port, proxy_type)
"""
sql = """select ip,port,proxy_type from ip_info order by RAND() limit 1;"""
cus.execute(sql)
for ip_info in cus.fetchall():
ip = ip_info[0]
port = ip_info[1]
proxy_type = ip_info[2]
if self.judge_ip(ip, port, proxy_type):
print("有效的ip")
return ip, port, proxy_type
return "://:".format(proxy_type, ip, port)
else:
print("再次尝试!")
time.sleep(1)
self.get_random_ip()
最后我们可以测试一下
一, 先用crawl_ips()方法抓取代理IP,前提是首先见好了数据库,连接好了表
if
name
== '
main
':
crawl_ips() # 先单独调用此函数 爬取代理ip 然后注释掉 测试提取出代理ip
二, 在把 crawl_ips()注释,实例化一个对象来获取一个可用的随机代理IP
test_net = GetIp()
ip = test_net.get_random_ip()
print(ip)
效果图:如下
调用函数 效果图
总结,这段脚本了,有两个看点吧,一是如何爬取代理IP,我使用了Scrapy框架里面的选择器来进行提取数据,二就是如何判断一个能用的代理IP,用百度这个网址去测试是否可用。
相关文章
大数据产业下的代理ip
2019年6月20日
在电视剧或者电影中常常可以看到这样的画面,很多电脑高手,通过某一个或者几个特征信息,输入到电脑软件中,就能找到该目标任务的信息。有的时候他们会切换
ip地址
,使得被查看人无法追踪。 ...
动态ip代理和静态代理有什么区别?
2019年6月19日
在互联网的时代下,我们会发现网络工作者他对于
代理ip
的需求也变得越来越大,比如说我们在进行网络推广营销以及数据采集爬取和游戏测试以及相关的数据分析的时候都必须要使用到
i ...
IP代理防止游戏封号
2019年6月18日
游戏封号,一直是游戏工作室和个人玩家挥之不去的梦魇,是广大玩家和游戏工作室最不想碰到的事。很多人都有过被封号的经历,不仅辛苦的游戏成果付诸东流,而且可能被游戏公司“拉黑”。
封号的理由也各种 ...
代理IP保护个人信息
2019年6月17日
IP
zKS9TmUgF3AsJZGPh2/De8GYZG+5K5vuv8OIqSje9iXBxKPzLgeWFCSBYGChW4HpBwhp7CWIwJXsJexgRjS77OqKWuBcA ...
在Win7中换IP地址难吗?
2019年6月3日
在Win7中换
IP地址
难吗?换IP地址并不少见,尤其是在局域网中办公,IP冲突,或者IP限制的时候,都需要换IP地址的。
有时候大家大概会由于ip地址的原因而导致没有法上网 ...
Python爬取神鸡免费代理ip(一)
2019年5月11日
Python爬取神鸡免费
代理ip
(一)。大家好,今天神鸡小编给大家分享一个Python爬取免费代理IP的一段代码。
首先分享一下思路。
1,预先从代理IP网站,爬取代 ...
如何使用动态拨号vps通过爬虫抓取贴吧数据
2019年5月6日
有时需要批量获取数据,如果要获取的网页非常多,一页一页的翻是不是太累了,有没有简单的方法?
当然有,可以利用各种工具,但是呢很多是收费的,或者有限制,还不如自己手动做个爬虫使用, ...
为什么要用高质量动态ip
2019年5月6日
使用
IP代理
的人日益增多,但有一个奇怪的现象是,还有很多人不习惯付费使用,尽管有的IP代理是免费,但还是有许多不足之处。今天就来一起看看免费
代理IP
...
哪些地方适合使用拨号服务器?
2019年5月6日
大家对于服务器了解有多少?拨号服务器与服务器有什么区别呢?我们一般使用拨号服务器是做什么的?哪些场景可以使用拨号服务器?
其实拨号服务器是介于浏览器与web服务器之间服务器,可以 ...
网络爬虫如何获得大量动态ip进行数据抓取
2019年5月6日
通常在数据爬取的时候,数据量相对较大,单个爬虫抓取速度太慢了,使用爬虫都是要多个爬虫抓取的,这时候就需要使用
IP代理
,使用多个
动态IP
来抓取 ...