python 抓取 快代理-国内普通代理 IP

  • 简介

简介

  1. 抓取快代理-国内普通代理栏目;
  2. 默认抓取所有的数据,从第一页到最后一页;
  3. 抓取关键词: ip port;
  4. 时间间隔默认:2s,时间太短会导致抓取失败;

创建一个kuaiDaiLiGeneral.py

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import os
import time
import requests
from bs4 import BeautifulSoupclass KuaiDaiLiGeneral(object):def __init__(self):self.session = requests.session()self.proxies = Noneself.timeout = 10self.time_interval = 2self.headers = {"Accept": "text/html,application/xhtml+xml,""application/xml;q=0.9,image/webp,*/*;q=0.8","Accept-Encoding": "gzip, deflate, sdch, br","Accept-Language": "zh-CN,zh;q=0.8","Connection": "Keep-Alive","User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) ""AppleWebKit/537.36 (KHTML, like Gecko) ""Chrome/55.0.2883.87 Safari/537.36",}def get_status(self, url):"""获取状态:param url: 访问地址:return: 返回response或False"""response = self.session.get(url=url,headers=self.headers,proxies=self.proxies,timeout=self.timeout,# verify=False,# allow_redirects=False)if response.status_code == 200:return responseelse:print("ERROR: 网络连接失败! status: %s url: %s" % (response.status_code, url))print(response.text)return Falsedef get_index(self, url):"""访问首页,建立连接:param url::return:"""response = self.get_status(url)if response:# response.encoding = "utf-8"# html = response.text# print(html)print("首页,建立连接...")return Truedef get_last_page(self, url):"""获取最后一页page:param url: 第一页的url:return: 返回int(last_page)或None"""response = self.get_status(url)if not response:return Nonehtml = response.textsoup = BeautifulSoup(html, "html5lib")lis = soup.select("#listnav > ul > li")if lis[-1].text == "页":last_page = lis[-2].find("a").textreturn int(last_page)return Nonedef parse_html(self, url):response = self.get_status(url)if not response:return Nonehtml = response.textsoup = BeautifulSoup(html, 'html.parser')items = soup.find(id="list").find("tbody").find_all("tr")ip_port_list = []for item in items:ip = item.find(attrs={"data-title": "IP"}).textport = item.find(attrs={"data-title": "PORT"}).textip_port = ip + ":" + port + "\n"ip_port_list.append(ip_port)return ip_port_list@staticmethoddef write_to_text(path, content):path = os.path.abspath(path)with open(path, 'a+', encoding='utf-8') as f:f.writelines(content)def next_page(self, last_page):for i in range(1, last_page + 1):time.sleep(self.time_interval)url = "https://www.kuaidaili.com/free/intr/{i}".format(i=i)print(url)ip_port_list = self.parse_html(url)path = os.path.join(os.getcwd(), "IP.txt")self.write_to_text(path, ip_port_list)def main(self):# 首页url = "https://www.kuaidaili.com"if not self.get_index(url):return Nonetime.sleep(self.time_interval)# 获取最后一页url = "https://www.kuaidaili.com/free/intr/1/"last_page = self.get_last_page(url)if not last_page:return None# 翻页self.next_page(last_page)if __name__ == '__main__':kuai_dai_li = KuaiDaiLiGeneral()kuai_dai_li.main()

python 抓取 快代理-国内普通代理 IP相关推荐

  1. Python 抓取 快代理、西刺代理 、西拉代理等等 构建免费代理池

    import reimport requests from lxml import etreeheaders = {"User-Agent": "Mozilla/5.0 ...

  2. 如何利用python抓取免费的IP资源、并测试http代理是否可用

    最近上某乎,发现很多人在用免费的HTTP代理,但是又不知道这个IP是不能可用的,今天带大家get如何判断你网上抓取来的免费HTTP代理是否可用. 一.获取可用的HTTP代理 先用Ping 获取一些可用 ...

  3. 用python抓取智联招聘信息并存入excel

    用python抓取智联招聘信息并存入excel tags:python 智联招聘导出excel 引言:前一阵子是人们俗称的金三银四,跳槽的小朋友很多,我觉得每个人都应该给自己做一下规划,根据自己的进步 ...

  4. python 抓取解析接口数据_[干货]用python抓取摩拜单车API数据并做可视化分析(源码)...

    原标题:[干货]用python抓取摩拜单车API数据并做可视化分析(源码) 在APP中能看到很多单车,但走到那里的时候,才发现车并不在那里.有些车不知道藏到了哪里:有些车或许是在高楼的后面,由于有GP ...

  5. blob的真实地址怎么获得_使用Python抓取m3u8加密视频 续:获得index.m3u8 地址

    之前写<使用Python抓取m3u8加密视频>笔记的原因,是自己有几个视频想保存,但对于m3u8, .ts 文件拼接不熟悉,就尝试写个脚本练手. 今天看了回复,有同学想知道如何从视频网站上 ...

  6. python 抓取电脑界面_学会了Python,我的人生跟开挂一样

    当代职场年轻人的抑郁,有千百种. 一边是加不完的班.完不成的KPI.大把掉落的头发,一边是今年严峻的就业形势,职场人面临的工作压力可想而知. 忙碌的生活不仅磋磨了锐气,也让人觉得,自己仿佛永远没有真正 ...

  7. python爬取pdf教程_#如何利用Python抓取PDF中的某些内容#python爬取pdf教程

    如何利用Python抓取PDF中的某些内容 学生每天要学习,工作者要工作,家庭主妇每都要务.不论做什么,都有着相应的操作流同样就会有操作技巧.学生运用技巧学习才不会累,学得还会更快更多:工作者掌握技巧 ...

  8. aws python sns_手把手教你用Python抓取AWS的日志(CloudTrail)数据

    原标题:手把手教你用Python抓取AWS的日志(CloudTrail)数据 作者: Gang TAO 大数据时代,利用数据做决策是大数据的核心价值. 本文手把手,教你使用python进行AWS的Cl ...

  9. Python学习第四篇:利用python抓取英语单词

    一,为什么这么做? 1,当我们需要自己定制自己的ietls单词本时,往往会因为各种原因不能达到目的.比如词形相近的词不在一起,没有例句等问题. 2,使用python抓取数据,是对python的一种熟练 ...

  10. python 爬取加密视频_使用Python抓取m3u8加密视频 续:获得index.m3u8 地址

    之前写<使用Python抓取m3u8加密视频>笔记的原因,是自己有几个视频想保存,但对于m3u8, .ts 文件拼接不熟悉,就尝试写个脚本练手. 今天看了回复,有同学想知道如何从视频网站上 ...

最新文章

  1. vue实现动态css,Vue中如何动态绑定CSS
  2. java-静态变量,单例模式
  3. IPMSG飞鸽传书——编译源代码的方法
  4. Jenkins 服务重启方法
  5. lua split实现(lua程序设计10.6练习10.1题)
  6. (35)SystemVerilog语言编写呼吸灯
  7. 如何让程序员更容易的开发Web界面?重构SmartAdmin展示TinyUI框架
  8. 校园网络构建方案设计
  9. Python官方开发文档(中文版)
  10. Kotlin基础篇(二)-作用域函数
  11. Excel密码保护怎么解密码
  12. python与数据库实现报表的分组统计_报表排版与布局:数据分组和统计(RDL/页面报表)...
  13. 基于LASSO的波士顿房价分析
  14. cad lisp 二次抛物线_用Cad画二次抛物线
  15. 我幼儿园的弟看了都直呼简单的【栈和队列】
  16. 1.16 利用Multisim 研究图P1.4所示电路在R的阻值变化时二极管的直流电压和交流电流的变化,并总结仿真结果。
  17. 构建DNS域名解析服务器步骤和使用虚拟机win10进行域名解析(技术文档)
  18. 将ibd恢复进数据库
  19. 数据分析 - 3.矩阵分析法(学习笔记)
  20. 文字转语音朗读如何操作?手把手教你如何将文字转语音

热门文章

  1. 一文读懂量化系统接入及相关平台
  2. [Android]安卓简易计算器 (使用GridLayout)
  3. IPEmotion采集J1939协议信号介绍
  4. MATLAB最基础的教程
  5. ResNet和BN层
  6. 计算机软件领域经典图书推荐
  7. 数学建模国二难不难_【干货】同学听说你想了解数学竞赛和数学建模?文末微积分串讲来袭,拯救你的期中!...
  8. 高等数学18讲(19版)7.29
  9. IPMI接口和BMC控制器
  10. Python黑帽子——通过Paramiko使用SSH