Python+mysql+php搭建另类免费代理池

news2024/11/23 15:52:08

文章目录

  • 前言:
  • 思路:
  • 开干:
  • php连接MySQL取ip和端口:
    • 效果图:
  • 最后调用代理池:
  • 总结:


前言:

为什么说另类的,因为我完全是按照我自己的想法来的,比较鸡肋,但是能用;

思路:

找到免费代理网站—>爬下里面的代理—>存到数据库—>用php写一个网页,随机从数据库里蹦出一个代理出来—>
python访问本地网站接收代理地址

开干:

找个免费代理地址,直接百度,有一大堆:
在这里插入图片描述
连接数据库,把爬到的地址存进去,这里我找的网站发现地址使用js加密了,我就直接上selenium拿数据了
参考代码:

import requests
import re
from selenium import webdriver
from selenium.webdriver import Chrome
from time import sleep
import pymysql
try:
    db = pymysql.connect(host='localhost',
                        user='root',
                        password='root',
                        database='spider')
    cursor = db.cursor()

    proxy = '127.0.0.1:1082'
    for i in range(1, 3):
        url = f'http://free-proxy.cz/zh/proxylist/country/all/http/ping/all/{i}'
        options = webdriver.ChromeOptions()
        options.add_argument('--start-maximized')
        options.add_argument('--proxy-server=http://' + proxy)
        browser = Chrome(options=options)
        browser.get(url=url)
        print(browser.title)
        trs = browser.find_elements(by='xpath', value='/html/body/div[2]/div[2]/table/tbody/tr')

        for tr in trs:
            a = tr.text
            if len(a) != 0:
                strs = a.split('H')[0]
                li = strs.split(' ')
                # ip = li[0]
                # port = li[1]
                # print(ip, port)
                SQL = "insert into free_pool(ip,port) values (%s, %s)"
                cursor.execute(SQL, (li[0], li[1],))
                print("成功")
except Exception as e:
    print("error:", e)
finally:
    db.close()


sleep(3)

效果图:我只拿下了里面的地址和端口
在这里插入图片描述

php连接MySQL取ip和端口:

<?php
	$db = mysql_connect("localhost","root","root");
	/*
	if($db){
		echo "sessful";
	}else{
		echo "no no no";
	}
	*/
	mysql_select_db("spider",$db);
	$result=mysql_query("SELECT * FROM free_pool",$db);
	$max_num=mysql_num_rows($result);//取得数据库的记录数

	srand((double)microtime()*10000000); //生成随机数种子。

	$se_pos=rand(0, $max_num-1); //从0到最大记录数取随机数
	$length=30; //设定共取多少条记录
	
	$result_lim=mysql_query("select * from free_pool limit $se_pos,$length",$db);

	$myrow_lim=mysql_fetch_array($result_lim);

	//printf("%sn", $se_pos);//显示随机得到的记录号

	printf($myrow_lim["ip"].':'.$myrow_lim["port"]);//显示随机得到的记录的name字段

	//select * from free_pool order by rand() limit 1;

?>

效果图:

每次访问这个地址,都会显示一个不同的地址加端口出来
在这里插入图片描述

最后调用代理池:

直接上代码:

import requests
resp = requests.get('http://192.168.1.106/proxy.php').text
print(resp)
print(type(resp))
url = 'http://httpbin.org/get'
proxy = resp
proies = {
    'http': 'http://' + proxy,
    'https': 'https://' + proxy
}

try:
    print("使用普通代理返回的数据:")
    response = requests.get(url, proxies=proies)
    print(response.json())
   
    print("不使用代理返回的数据:")
    resp = requests.get(url)
    print(resp.json())
except Exception as e:
    print("Error:",e)

代理使用成功,就是很慢,而且很多不能用
在这里插入图片描述

总结:

全是我想到什么就敲什么,就是想锻炼一下动手能力,中间的php代码是放在本地的phpstudy服务器上的,就这样吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/450337.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

短视频app开发:如何提高视频播放稳定性

简介 如今&#xff0c;短视频已经成为人们日常生活中不可或缺的一部分&#xff0c;而短视频app的开发也日益成为了人们热议的话题。在短视频app开发的过程中&#xff0c;如何提高视频播放稳定性是一个非常重要的问题。本文将从短视频源码角度出发&#xff0c;分享提高短视频ap…

如何优化语音交友app开发的搜索和匹配算法

语音交友app开发的挑战 在当今社交媒体行业中&#xff0c;语音交友app开发已经成为一个热门的领域。越来越多的人开始使用语音交友app来寻找新的朋友&#xff0c;这也为开发者们带来了许多机会。然而&#xff0c;这个领域也面临着一些挑战。其中一个最大的挑战是如何优化搜索和…

掏空腰包,日子难过,机缘转岗软件测试,这100个日夜的心酸只有自己知道...

我今年27岁&#xff0c;原本从事着土木工程相关的工作&#xff0c;19年开始有了转行的想法... 大学刚毕业那年&#xff0c;我由于学的是土木工程专业&#xff0c;自然而然的从事了和土木工程相关的工作&#xff0c;房贷、车贷&#xff0c;在经济的高压下&#xff0c;当代社会许…

大数据题目测试(一)

目录 一、环境要求 二、提交结果要求 三、数据描述 四、功能要求 1.数据准备 2.使用 Spark&#xff0c;加载 HDFS 文件系统 meituan_waimai_meishi.csv 文件&#xff0c;并分别使用 RDD和 Spark SQL 完成以下分析&#xff08;不用考虑数据去重&#xff09;。 (1)配置环境…

Java设计模式-day01

1&#xff0c;设计模式概述 1.1 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中&#xff0c;而是被用于建筑领域的设计中。 1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫亚历山大&#xff08;Christopher Alexand…

React Native iOS打包详细步骤

一、在自己项目的iOS文件夹下新建一个文件夹取名bundle 二、将打包命令写到项目package.json文件里&#xff0c;终端执行 npm run bundle-ios 先添加如下&#xff08;注意&#xff1a;这里写的路径"./ios/bundle"就是上面bundle创建的文件夹&#xff09;&#xff1a…

C51单片机介绍

本文为学习51单片机的学习的基础&#xff0c;先介绍单片机是什么。所使用的单片机有什么资源。每一个功能的作用是什么。本文使用的是STC89C52RC 40I-PDIO40&#xff0c;故以此为基础研究学习。 C51单片机介绍 单片机的概述单片机的组成部分中央处理器程序存储器数据存储器定时…

图神经网络能做什么?

从概念上讲&#xff0c;我们可以将图神经网络的基本学习任务分为 5 个不同的方向&#xff1a; &#xff08;1&#xff09;图神 经网络方法&#xff1b; &#xff08;2&#xff09;图神经网络的理论理解&#xff1b; &#xff08;3&#xff09;图神经网络的可扩展性&#xff1b…

Git的进阶使用(二)

本篇文章旨在分享本人在学习Git时的随笔记&#x1f929; 文章目录 概述1、Git 分支1.1 主干分支1.2 其他分支1.2.1 创建分支1.2.2 查看分支1.2.3 切换分支1.2.4 删除分支 2、Git 合并2.1 主干分支2.2 其他分支2.3 合并分支 3、Git 冲突3.1 主干分支3.2 其他分支3.3 切换分支 -B…

Replika:AI智能聊天机器人

【产品介绍】 Replika&#xff0c;这个名字可能有点拗口&#xff0c;但如果你知道这是复制品Replica的同音变体&#xff0c;你即刻能明白这个产品的定位了。官方Luka公司定义它是你的AI朋友&#xff0c;默默学习你&#xff0c;最终成为你的复制品。它不像现在市面上各大厂的AI助…

《ChatGPT开发应用指南》,Datawhale开源了!

Datawhale发布 开源教程&#xff1a;HuggingLLM&#xff0c;Datawhale团队 随着ChatGPT的爆火&#xff0c;我们相信未来会有越来越多的大模型及类似OpenAI提供的服务出现&#xff0c;AI 正在逐渐平民化&#xff0c;将来每个人都可以利用大模型轻松地做出自己的AI产品。 Huggin…

【历史上的今天】3 月 23 日:网景创始人出生;FORMAC 语言的开发者诞生;PRMan 非商业版发布

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 3 月 23 日&#xff0c;在 141 年前的今天&#xff0c;1882 年 3 月 23 日&#xff0c;抽象代数之母艾米诺特&#xff08;Emmy Noether&#xff09;诞生。她的…

JUC-多线程(12. AQS-周阳)学习笔记

文章目录 1. 可重入锁1.1. 概述1.2. 可重入锁类型1.3. Synchronized 可重入实现机理 2. LockSupport2.1. LockSupport 是什么2.2. 3种线程等待唤醒的方法2.2.1 Object 的等待与唤醒2.2.2. Condition接口中的等待与唤醒2.2.3. 传统的 synchronized 和 Lock 实现等待唤醒通知的约…

本地搭建属于自己的ChatGPT:基于PyTorch+ChatGLM-6b+Streamlit+QDrant+DuckDuckGo

本地部署chatglm及缓解时效性问题的思路&#xff1a; 模型使用chatglm-6b 4bit&#xff0c;推理使用hugging face&#xff0c;前端应用使用streamlit或者gradio。 微调对显存要求较高&#xff0c;还没试验。可以结合LoRA进行微调。 缓解时效性问题&#xff1a;通过本地数据库…

YOLOv7如何提高目标检测的速度和精度,基于模型结构提高目标检测速度

目录 一、目标检测二、目标检测的速度和精度的权衡1、速度和精度的概念和定义2、如何评估目标检测算法的速度和精度3、速度和精度之间的权衡 三、基于模型结构提高目标检测速度1、Backbone网络的选择2、特征金字塔网络的设计3、通道注意力机制4、混合精度训练 一、目标检测 目…

光纤网卡传输速率和它的应用领域有哪些呢?通常会用到哪些型号网络变压器呢?

Hqst盈盛&#xff08;华强盛&#xff09;电子导读&#xff1a;常有客户问起光纤网卡该如何选用到合适的产品&#xff0c;选用时要注意到哪些事项&#xff0c;这节将结合配合到的网络变压器和大家一起探讨&#xff0c;希望对大家有些帮助。 1&#xff0e;光纤网卡传输速率与网络…

【教程】一文读懂 ChatGPT API 接入指南

ChatGPT 是一个基于自然语言处理技术的 API&#xff0c;它能够根据用户的输入&#xff0c;生成智能回复。结合当前最先进的AI技术&#xff0c;AP智能续写&承接上下文&#xff1b;可以回答各种问题&#xff0c;例如&#xff1a;历史&#xff0c;科学&#xff0c;文化&#x…

【越早知道越好】的道理——能够提高效率的【快捷键】

文章目录 1️⃣虚拟桌面⚜️第一步&#xff1a;打开任务视图⚜️第二步&#xff1a;创建桌面⚜️第三步&#xff1a;桌面切换⚜️第四步&#xff1a;桌面删除 2️⃣窗口切换3️⃣桌面分屏⚜️如何分屏 前言&#x1f9d1;‍&#x1f3a4;&#xff1a;作为程序员&#x1f468;‍&…

15天学习MySQL计划-多表联查(基础篇)第四天

15天学习MySQL计划&#xff08;多表联查&#xff09;第四天 1.多表查询 1.1概述 ​ 指从多张表中查询数据 ​ 在项目开发中&#xff0c;在进行数据库表结构设计时&#xff0c;会根据业务需求及业务模块之间的关系&#xff0c;分析并设计表结构&#xff0c;由于业务之间相互…

大数据实战 --- 美团外卖平台数据分析

目录 开发环境 数据描述 功能需求 数据准备 数据分析 RDD操作 Spark SQL操作 创建Hbase数据表 创建外部表 统计查询 开发环境 HadoopHiveSparkHBase 启动Hadoop&#xff1a;start-all.sh 启动zookeeper&#xff1a;zkServer.sh start 启动Hive&#xff1a; nohup …