从数据库中随机ip代理,并验证

import pymysqlimport requests

class GetRandomIP():    def getip(self):        conn = pymysql.connect(host="localhost", port=3306, user="root", password="liuzhiyu", db="python77",                               charset="utf8")        cursor = conn.cursor()

sql=‘select type,ip,port from ipcontent ORDER BY RAND() LIMIT 1‘        cursor.execute(sql)

rows = cursor.fetchall()[0]        type_ipaddress_port = ‘{}://{}:{}‘.format(rows[0], rows[1], rows[2])        print(‘*‘*50,end=‘\n\n‘)        print(‘从数据库中获取的IP为: {}‘.format(type_ipaddress_port))        self.yz_ip(rows[0],rows[1],type_ipaddress_port)        cursor.close()        conn.close()

def yz_ip(self,type,ipaddress,type_ipaddress_port):        print(‘验证ip: {} 是否有效:‘.format(type_ipaddress_port))        try:            response=requests.get(‘http://www.baidu.com‘,proxies={type:type_ipaddress_port})  #proxies={‘HTTP‘:‘HTTP://106.56.102.139:8070‘}        except Exception as e:            print(‘ip: {} 无效,将从数据库中删除‘.format(ipaddress))            self.del_ip(ipaddress)        else:            print(‘状态码: {} (200代表有效)‘.format(response.status_code),end=‘\n\n‘)

def del_ip(self,ip):

conn = pymysql.connect(host="localhost", port=3306, user="root", password="liuzhiyu", db="python77",                               charset="utf8")        cursor = conn.cursor()        sql = ‘delete from ipcontent where ip=%s‘        cursor.execute(sql,(ip))        conn.commit()        print(‘删除ip: {} 成功‘.format(ip),end=‘\n\n‘)        cursor.close()        conn.close()

if __name__ == ‘__main__‘:    gr = GetRandomIP()    while 1:        gr.getip()

原文地址:https://www.cnblogs.com/inorilzy/p/9574134.html

时间: 2024-10-03 14:45:33

从数据库中随机ip代理,并验证的相关文章

scrapy_随机ip代理池

什么是ip代理? 我们电脑访问网站,其实是访问远程的服务器,通过ip地址识别是那个机器访问了服务器,服务器就知道数据该返回给哪台机器,我们生活中所用的网络是局域网,ip是运营商随机分配的,是一种直接访问服务器的方式 代理服务器是一种间接方式,本地机器访问ip代理服务器,ip代理服务器帮我们发起服务请求,然后代理服务器接收数据返回给本机,由于中间有了层ip代理服务器,访问的速度和稳定性取决于代理服务器的性能 常规访问: 用户 >> ip  >> 服务器 代理访问: 用户用户 >

15.从zabbix数据库中获取ip列表

我把监控作为中心节点,所以所有IP地址都从zabbix中提取. 从zabbix数据库中提取IP,有两种方法: (1)直接模糊查询hosts表: 比如查询运维部门的ip:select host from hosts where name like "op%" order by host; 完整代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import sys import MySQLdb reload(sys) sys.setde

从SQLSERVER/MYSQL数据库中随机取一条或者N条记录

原文:从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 很多人都知道使用rand()函数但是怎麽使用可能不是每个人都知道 建立测试表 USE [sss] GO CREATE TABLE RANDTEST(ID INT DEFAULT RAND()*100,NAME NVARCHAR(200) DEFAULT 'nihao') GO CREATE INDEX IX_RANDTEST_ID ON RANDTEST(ID)

--关于null在oracle数据库中是否参与计算,进行验证,

--关于null在oracle数据库中是否参与计算,进行验证,with td as (select null id,1 name from dual ),td1 as ( select null id,2 name from dual ) select * from td, td1 where nvl(td.id,'0.00') = '0' select '1'||'0.1' from dual number number -> char select to_char(3333.00,'999,

随机IP代理

第一个例子就设置了一个代理IP,也是不靠谱的,最好的方式就是多设置几个,如第二个例子,通过http://www.youdaili.net/Daili/你可以找到很多代理IP, 抓取国内网站时尽量选取中国的IP(虽然这种免费IP代理很多,不过免费的东西靠不靠谱就说不好了,实际上以我的经验,我会初始设置100个左右,根据他们的访问效率测试抓取,再筛选几个靠谱的代理正式抓取),第二个例子中用到了随机数,每次抓取都是随机选取一个IP代理.

TODO:从数据库中随机抽取一条记录

1.最直接,最粗暴的方法先计算记录的总数,然后选择一个从0到记录总数之间的随机数n,利用skip跳过n条记录,这是效率低下的的方法,首先的记录总数,在用skip会很耗时间: 2.那么有什么办法能够提供效率呢,方法就是给每条记录添加一个0-1的随机因子random. "random" : 0.5127909016609585 想要在记录中查找一个随机记录,只要计算出一个随机数并作为查询条件就好了 Result = db.getCollection('qq').findOne({"

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

一个易用的IP代理池 - stand 写爬虫时常常会遇到各种反爬虫手段, 封 IP 就是比较常见的反爬策略 遇到这种情况就需要用到代理 IP, 好用的代理通常需要花钱买, 而免费的代理经常容易失效, 所以就需要自己搭建 IP 代理池, 来获取免费高效的代理 IP. 下面介绍一个自己写的 IP 代理池, 欢迎 star lin-zone/stand 安装 pip install stand 启动 stand 启动后, 爬虫会从代理网站抓取 IP, 并将数据保存在名为 stand.db 的 SQLi

【Python3爬虫】Scrapy使用IP代理池和随机User-Agent

在使用爬虫的时候,有时候会看到由于目标计算机积极拒绝,无法连接...,这就是因为我们的爬虫被识别出来了,而这种反爬虫主要是通过IP识别的,针对这种反爬虫,我们可以搭建一个自己的IP代理池,然后用这些IP去访问网站. 新建一个proxies.py,实现我们自己的代理池,主要模块有获取模块.验证模块和存储模块. (1)获取模块:爬取网上的免费代理,这一部分我就写了个爬取西刺代理的代码,除了获取网上的代理,还要对代理池中代理进行清洗,因为有些代理会失效: (2)验证模块:验证我们的代理是否可用,如果不

pytohn爬虫成长之路:抓取代理IP并多线程验证

上回说到,突破反爬虫限制的方法之一就是多用几个代理IP,但前提是我们得拥有有效的代理IP,下面我们来介绍抓取代理IP并多线程快速验证其有效性的过程. 一.抓取代理IP 提供免费代理IP的网站还挺多的,我在'西刺代理'上一阵猛抓后自己的IP就被其屏蔽了.只好换'IP巴士'并乖乖的减缓抓取速度了.贴上抓取代码 import urllib.request import urllib import re import time import random #抓取代理IP ip_totle=[] #所有页