专栏首页Kirin博客python 爬虫之搭建代理ip池–测试代理ip可用性

python 爬虫之搭建代理ip池–测试代理ip可用性

有一个自己的代理ip池,并且经常去维护它的话,自身的ip就没那么容易被封掉,
下面是检测代理ip是否可用的方法,
原理是从我存入数据库的ip中提取出所有的ip逐个去检测,(访问一个稳定的网站,如果返回200就视为可用)
如果可用的话就保留,如果不可用就调用delete方法,从数据库中删除掉。
这就是筛选的方式,挺简单的,那么肯定会有人问,爬取的过程和这个步骤一起做了不行吗?
emm答案是肯定行的,因为我爬取西刺代理被封过一次ip,爬取速度太快了,所以我还是分步吧。
封一次ip又要等几天。很烦。。。。。。。。。。过几天在贴出爬取检测存储一部到位的吧
下面是代码部分,写的有点乱,仅供参考
import pymssql
import requests
import time
import os
# -*- coding: gb2312 -*- #
"""
测试之前爬取存到数据库的代理ip是否可用,可行。。
接着爬呀爬。
"""
headers={
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3722.400 QQBrowser/10.5.3751.400',

}


usr=pymssql.connect('KIRIN','sa','123','student',autocommit=True)
sql=usr.cursor()
# sql.execute('''delete from ip where ip=('60.167.135.229')''')

    # 数据库删除ip方法
def delete(ip):
    xx=usr.cursor()
    xx.execute(f'''delete from ip where ip=('{ip}')''')
    print(ip,'不可用,已移除')


def getip(): # 从数据库获取ip并进行拼接处理,给下面请求测试使用
    sql.execute('select ip,port from ip')
    aa = sql.fetchall()
    ip = []
    for xx in aa:
        xxx = ':'.join(xx)

        ip.append(xxx)
    return ip


# ip请求外部方法
def put():
    a=getip()
    for x in a:
        t={'http':'{}'.format(x)} # 接收到处理过的ip 下面发送请求
        try:
            req = requests.get('http://666cc.cn/blog/', headers=headers, proxies=t, timeout=3)
            if req.status_code==200:
                print('ip可用',x)
        except Exception as e:
            print(e)
            xx=x.find(':')
            delete(x[:xx])
put()
sql.close()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python代理ip检测

    kirin
  • python 模拟cc攻击实现过程(请不要做任何违法的事)

    kirin
  • 多进程爬取电影

    kirin
  • 微信小程序获取用户所在城市

    在微信小程序中, 获取用户的地理位置是需要权限的, 如果只是获取用户所在的城市信息, 那只需查看用户ip所在的城市就好了, 下面我们就完成获取用户ip的小程序逻...

    Javanx
  • 【Go】获取用户真实的ip地址

    用户请求到达提供服务的服务器中间有很多的环节,导致服务获取用户真实的 ip 非常困难,大多数的框架及工具库都会封装各种获取用户真实 ip 的方法,在 exne...

    thinkeridea
  • 调用python-nmap实现扫描局域网

    使用环境:Raspberry 3b+ +netifaces+python-nmap+nmap

    py3study
  • 听说你的爬虫被封了?

    网上有许多代理ip,免费的、付费的。大多数公司爬虫会买这些专业版,对于普通人来说,免费的基本满足我们需要了,不过免费有一个弊端,时效性不强,不稳定,所以我们就需...

    用户1332428
  • 听说你的爬虫被封了?

    网上有许多代理ip,免费的、付费的。大多数公司爬虫会买这些专业版,对于普通人来说,免费的基本满足我们需要了,不过免费有一个弊端,时效性不强,不稳定,所以我们就需...

    意气相许的许
  • django request 获取请求的 IP 地址

    KEVINGUO_CN
  • python实现主机批量管理

        在日常的运维工作中批量对主机的是很常见的,市面上也有许多主机批量管理的软件,但有时候这些软件并不能完全的满足我们的需求。python中刚好提供了关于主机...

    py3study

扫码关注云+社区

领取腾讯云代金券