这段时间在做一些面试的题目,如果胖友门也想试试的,可以找我要链接哈

这个题目,不是特别难,解题方法在这个博客:
https://blog.csdn.net/weixin_40576010/article/details/89486527
 
难在怎么拥有起码5000个以上的IP地址,对于我这种平民玩家,我更喜欢免费代理,毕竟不花钱,想要免费代理的话,这个我们可以弄个Cookie池,详细见这个推文:
https://blog.csdn.net/weixin_40576010/article/details/89366179
 
免费代理网站:

代理名 网站
快代理 https://www.kuaidaili.com/ops/
66免费代理 http://www.66ip.cn/
IP海 http://www.iphai.com/
国内高匿IP https://www.xicidaili.com/nn/
优代理 http://www.data5u.com/free/gngn/index.shtml

免费代理的话,有个坏处,就是,你获取到的IP代理,有一些是挺久以前,也就是大部分都是过期的了,想要弄个5000个IP地址不是问题,可是能用的,寥寥无几,我试了一下,300个大概10个可用吧,所以,我为了加快速度,忍心花钱买了三次,一次一天,IP无限量,讲真的,这些IP地址,刚刚开始,大部分都能爬取成功,那速度,真的快,只是后面,这个题目就是你爬一次,IP封一次,所以后面速度会相对满一点,等你测试通过之后,没有bug再买一天,一顿饭钱,可以换来几个小时的缩减。

代理名字 价格
66代理http://www.66daili.cn/UserManage/ 8块钱一天无限量
西瓜代理http://www.xiguadaili.com/ 9块钱一天无限量

66代理: web接口提取:
你可以用selenium来弄个自动爬取(每次IP数量1000+)
 
西瓜代理: 提供web接口以及txt文档下载执行(每次IP数量100+)

这里我就用selenium爬取数据,然后保存到redis数据库中的代码:

import redis
from selenium import webdriver
import time
import reclass Redis_Client():"""数据库客户端"""def __init__(self):self.db = redis.StrictRedis(host='localhost', port=6379, db=4, decode_responses=True)def add(self, proxy, score=100):"""添加代理,设置分数为初始分数:param proxy: 代理:param score: 分数:return: 添加结果"""if not self.db.zscore("proxies", proxy):return self.db.zadd("proxies", {proxy: score})def spider_ip(url, redis_client):"""每隔1分钟爬取一次,, 然后添加到redis数据库中:param url: 西瓜代理url:param redis_client: redis数据库客户端:return: None"""count = 0while True:try:chrome_opetions = webdriver.ChromeOptions()chrome_opetions.add_argument("--headless")browser = webdriver.Chrome(options=chrome_opetions)browser.maximize_window()browser.get(url)# 获取ip地址order_id = browser.find_element_by_id("tid")order_id.clear()order_id.send_keys("555050574900674")check = browser.find_element_by_xpath("//input[@name='category'][3]")check.click()time.sleep(3)submit_click = browser.find_element_by_id("submit_button")submit_click.click()browser.switch_to_window(browser.window_handles[1])# 提取数据response = browser.page_sourcetext = re.findall(r"pre-wrap;\">(.*)<\/pre.*>", response, re.S)[0]if text == "ERROR|没有找到符合条件的IP":time.sleep(20)browser.quit()continuewith open("id.txt", "w") as fd:fd.write(text)for i in open("id.txt", "r"):print(i.strip())proxy = re.sub(r"\s", "", i)redis_client.add(proxy=proxy)count += 1time.sleep(4)browser.quit()time.sleep(40)except Exception as e:print(e)time.sleep(10)continueif count == 1500:breakdef main():url = "http://www.xiguadaili.com/web"rc = Redis_Client()# 开始爬取spider_ip(url, rc)if __name__ == '__main__':main()

如何获取大量廉价可靠代理IP地址?相关推荐

  1. 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

  2. 电脑换ip_代理ip地址怎么换

    在我们的生活中,很多的工作者开始接触到ip,工作中也开始大量的使用到ip,但是对于ip地址的更换可能还有一部分人不知道.IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机 ...

  3. Java获取请求客户端的真实IP地址

    整理网友的材料,最后有源码,亲测能解决所有java获取IP真实地址的问题 整理的这里: 1.链接1 2.链接2 JSP里,获取客户端的IP地址的方法是: request.getRemoteAddr() ...

  4. 后台获取访问端的真实ip地址

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid,nginx等反向代理软件就不能获取到客 ...

  5. 动态共享ip_共享ip地址_代理ip地址共享

    优质的动态共享ip不仅需要真正深度高匿,且带宽够足业务防关联性强,用的是电信住宅IP,高白名单数提高工作稳定效率.不像市面上很多****http品牌的代理,他们虽然广告打得很凶猛,但其实都是同一家的I ...

  6. Php正则表达式的应用———提取某网站中最新发表的代理ip地址

    Php正则表达式的应用---提取某网站中最新发表的代理ip地址 正则表达式的功能是非常强大的,主要三方面应用.1.判断指定的字符串是否具有指定的格式 2.查找具有指定格式的字符串 3. 将具有指定格式 ...

  7. 应用PHP正则表达式提取某网站中最新发表的代理ip地址

    Php正则表达式的应用---提取某网站中最新发表的代理 ip 地址 正则表达式的功能是非常强大的,主要三方面应用.1. 判断指定的字符串是否具有指定的格式 2.查找具有指定格式的字符串 3. 将具有指 ...

  8. 获取用户电脑的上网IP地址

    在项目中经常要获取用户的上网的IP地址,如何获取用户的IP地址,方法很多,现在介绍以下2种. /// <summary>         /// 获取本机在局域网的IP地址         ...

  9. python测试代理IP地址

    代码: # -*- coding: utf-8 -*-import urllib,urllib2,re from random import choice from scrapy.selector i ...

最新文章

  1. 3dcaptcha php,验证simple-php-captcha()输入
  2. 集中化监控SQL Server数据库
  3. CentOS 漏洞修补
  4. 我们为什么需要工作流
  5. Linux 常用命令与设置
  6. IOT---(6)Android Things 开发环境搭建
  7. 代码阅读器 android,适用于Android的条形码/ Qr代码阅读器
  8. Python数据可视化的四种简易方法
  9. 道硕改革宗神学院课表简略
  10. JS 回调(CallBack)
  11. sql2016/2017 卸载安装
  12. linux操作系统环境搭建实验报告,操作系统实验报告 Linux基本环境
  13. 关于算法竞赛入门经典3.4.2思考题题目1必要的存储量的思考
  14. ppt复制切片器_零基础小白自学PPT快速入门到精通(上)
  15. 苹果笔记本下载视频剪辑软件pr cc 2019 for mac
  16. vs2015调试iisexpress无法启动的问题解决方案整理
  17. DCDC与LDO浅析
  18. JAVA / JS 中关于this和that
  19. 打开计算机窗口的控制菜单,打开控制面板的几种方法
  20. KaTex数学公式编辑器相关

热门文章

  1. 美国计算机硕士不接受雅思,美国留学:不接受雅思的大学盘点
  2. 典型计算机电路组成,硬件工程师必会的几道题
  3. OpenAI:ChatGPT 自动写代码功能测试
  4. css_使div中的文本自动换行
  5. java thread dump
  6. 程序员python表白代码
  7. Linux基础命令-tar打包压缩文件
  8. es拼音分词 大帅哥_SpringBoot集成Elasticsearch 进阶,实现中文、拼音分词,繁简体转换...
  9. python怎么编译dex_用python一步步解剖dex文件(二)
  10. 每日一道leetcode(python)1823. 找出游戏的获胜者