爬虫篇——代理IP爬取备用及存储

  • 代码

代码

本文通过抓取免费的高匿IP代理,将其写入列表并保存为json格式文件,且将代码进行了封装,方便以后抓取数据时动态的更新handle的IP地址,从一方面避免抓取数据时反爬的干扰。

# *************************** 免费高匿代理IP爬取 ****************************
import urllib.request
import requests
from bs4 import BeautifulSoup
import json
class ProxySpider(object):def __init__(self):self.url = "https://www.xicidaili.com/nn/"self.headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"}self.ip_list = []self.ip_valid = []# 1、发送网络请求 获取数据def data_request(self):return requests.get(self.url,headers = self.headers).content.decode("utf-8")# 2、解析数据def data_parse(self,data):parse_data = BeautifulSoup(data,"lxml")
#         print(parse_data)all_proxy = parse_data.select('tr')del all_proxy[0]for proxy in all_proxy:ip = proxy.select("td")[1].get_text()port = proxy.select("td")[2].get_text()ip = ip + ":"+portself.ip_list.append(ip)# 3、检查代理ip地址的可用性def ip_validation(self):for ip in self.ip_list:try:free_proxy = {}free_proxy["http"] = ipurl = "https://www.baidu.com/"requests.get(url,headers = self.headers,proxies = free_proxy)self.ip_valid.append(ip)except urllib.request.HTTPError as error:print(error.code)# 4、数据存储def data_save(self):with open("free_proxy.json","w",encoding = "utf-8")as fp:json.dump(self.ip_valid,fp)# 4、统筹运行def run(self):# 1、请求数据data = self.data_request()
#         print(data)# 2、数据解析self.data_parse(data)
#         print(len(self.ip_list))# 3、检查ip地址可用性self.ip_validation()
#         print(len(self.ip_valid))# 4、数据存储self.data_save()
if __name__ == "__main__":ProxySpider().run()

代码运行结果:

["122.51.49.88:8888", "118.181.226.166:44640", "122.4.40.194:27430", "115.49.74.102:8118", "101.200.81.61:80", "49.76.237.243:8123", "124.156.98.172:80", "117.88.176.221:3000", "122.51.183.224:808", "119.254.94.93:46323", "59.44.78.30:42335", "27.208.231.100:8060", "113.77.101.202:8118", "124.239.216.14:8060", "101.132.123.99:8080", "60.31.213.115:808", "115.219.168.69:8118", "117.94.213.119:8118", "58.254.220.116:52470", "112.14.47.6:52024", "117.186.49.50:55443", "60.2.44.182:30963", "61.54.225.130:8060", "117.88.176.162:3000", "117.88.177.143:3000", "117.88.176.194:3000", "60.216.101.46:59351", "139.196.193.85:8080", "27.188.65.244:8060", "101.132.190.101:80", "60.190.250.120:8080", "115.46.116.170:8123", "120.198.76.45:41443", "218.59.193.14:47138", "121.237.149.63:3000", "121.237.148.31:3000", "117.88.177.197:3000", "117.88.176.55:3000", "119.180.173.81:8060", "222.95.144.202:3000", "117.88.176.170:3000", "121.237.148.241:3000", "183.195.106.118:8118", "114.104.134.142:8888", "223.68.190.130:8181", "121.237.149.218:3000", "110.189.152.86:52277", "27.184.157.205:8118", "112.194.112.175:8118", "202.107.233.123:8090", "119.84.112.137:80", "211.159.219.225:8118", "115.29.108.117:8118", "183.250.255.86:63000", "117.62.172.230:8118", "111.222.141.127:8118", "218.76.253.201:61408", "218.203.132.117:808", "221.193.94.18:8118", "121.237.149.206:3000", "220.173.143.242:808", "1.197.203.247:9999", "171.35.172.5:9999", "118.114.96.78:8118", "117.87.72.226:8118", "117.88.5.40:3000", "125.123.19.197:8118", "61.150.96.27:46111", "182.32.234.18:9999", "171.35.167.220:9999", "171.35.167.224:9999", "123.168.136.2:9999", "113.194.49.94:9999", "222.85.28.130:40505", "123.206.54.52:8118", "27.184.141.239:8118", "124.93.201.59:59618", "117.114.149.66:53281", "121.237.149.107:3000", "180.117.98.96:8118", "123.132.232.254:37638", "139.224.233.103:8118", "221.218.102.146:33323", "118.24.155.27:8118", "113.12.202.50:40498", "222.190.125.3:8118", "175.148.69.90:1133", "218.75.69.50:39590", "118.78.196.186:8118", "222.95.144.59:3000", "121.237.149.136:3000", "117.88.5.250:3000", "171.35.168.177:9999", "121.237.148.179:3000", "223.241.118.200:8010", "58.215.219.2:8000", "180.117.234.56:8118", "117.88.176.93:3000", "123.171.5.132:8118", "119.129.203.140:8118"]

by CyrusMay 2020 04 24

青春是手牵手坐上了
永不回头的火车
总有一天我们都老了
不会遗憾就OK了
——————五月天——————

爬虫篇——代理IP爬取备用及存储相关推荐

  1. 爬虫篇——User-Agent爬取备用及存储

    爬虫篇--User-Agent爬取备用及存储 代码 代码 本文通过抓取常见的User-Agent(用户代理),将其写入列表并保存为json格式文件,且将代码进行了封装,方便以后抓取数据时动态的更新请求 ...

  2. 爬虫之使用代理ip爬取

    爬虫之代理ip的应用 ​ 在爬虫的过程中,我们经常会遇见很多网站采取了防爬虫技术,或者说因为自己采集网站信息的强度和采集速度太大,给对方服务器带去了太多的压力. ​ 如果一直用同一个代理ip爬取这个网 ...

  3. 数据抓取 -- 使用代理IP爬取数据:(2):使用timeout 时要注意,防止数据加载不完整 ,导致爬取丢失(举例)

    问题: 在使用代理IP爬取数据的时候,经常会出现爬取的网址信息不完整的现象.其中有个原因就是timeout设置问题. 代码如下: import requests from bs4 import Bea ...

  4. 快代理IP爬取 并建立可用IP池

    下面展示一些 内联代码片. #快代理IP爬取 并建立可用IP池 import requests import time from lxml import etree from fake_userage ...

  5. 代理IP爬取和验证(快代理西刺代理)

    前言 仅仅伪装网页agent是不够的,你还需要一点新东西 今天主要讲解两个比较知名的国内免费IP代理网站:西刺代理&快代理,我们主要的目标是爬取其免费的高匿代理,这些IP有两大特点:免费,不稳 ...

  6. 高可用免费代理ip爬取实战

    我们在使用爬虫的时候,会对代理ip有一定程度的需求.今天爬取的这个免费代理网站不是大家已经爬烂的西刺和66等代理网站,是我无意间发现的~ 这个网站还是有一点意思的. 注意到没有,这里的ip地址被换成了 ...

  7. 第2.1章 scrapy之国内高匿代理IP爬取

    这个网站较为简单,故作为爬虫的第一个示例 代码如下: # -*- coding: utf-8 -*- ''' Created on 2017年6月12日 从国内高匿代理IP网站中获取动态ip信息 @s ...

  8. 利用代理IP爬取京东网站手机数据

    1.代理简介 在爬虫过程中如果经常用自己的IP进行爬虫会出现IP被封的可能,这就要用到代理技术,通过爬取代理网站的IP地址,每次爬取页面就随机选择一个IP地址进行爬取,这样就会降低IP被封的可能性. ...

  9. java使用代理ip爬取网站内容

    在一些有反爬虫技术的网站中,检测到同一ip在短时间内多次访问的时候,可能就会禁掉这个ip. 上有政策,下有对策,为了应对这种情况,可以使用多个代理ip去爬取这个网站. java使用代理ip有两种方法: ...

最新文章

  1. 配置中文_《洛克人Zero/ZX遗产合集》PC配置公布 支持中文
  2. 51nod1836-战忽局的手段【期望dp,矩阵乘法】
  3. 二叉树后序遍历_二叉树后序遍历非递归实现
  4. ffmpeg 编码如何做带宽控制输出
  5. 我的内核学习笔记16:海思Hi3516平台PWM使用记录
  6. 新一代CTR预测服务的GPU优化实践
  7. 积分兑换平台(这是一种剥削么?强烈求拍砖)
  8. Silverlight实现文件的下载[很简单]
  9. Mysql全国省区县地区码
  10. shopex服务器信息,最新版ShopEx 安装和默认后台地址及修改方法
  11. Wechat协议初探
  12. 小学-知识与能力【5】
  13. java实现大文件切割分片
  14. SNARK性能及安全——Verifier篇
  15. Java面试题(一)100家大公司java笔试题汇总
  16. 地图中的矢量POI兴趣点
  17. 2022华中杯、五一竞赛赛事备战
  18. 2021教师资格考试结构化面试:家长说你教的不好,怎么办?
  19. ITIL配置管理实施常见问题总结
  20. 【原创】联通网络无法使用FTP,无法使用21端口连接的解决方法

热门文章

  1. Go语言入门——dep入门
  2. 【Scratch】青少年蓝桥杯_每日一题_5.07_猜数字
  3. Spring Boot怎么样注册Servlet三大组件[Servlet、Filter、Listener]
  4. 什么是工装服_王俊凯穿连体工装亮相跨年晚会,中国风满满的设计,尽显帅气...
  5. android studio安装教程博客园独王,Android Studio安装与配置
  6. 字典删除多个键值对方法_Life is short,you need Python——Python序列(元组、字典、集合)...
  7. 算法工程与计算机科学,合并的分水岭算法-计算机工程与科学.PDF
  8. java 中美时间_求教用java编写一个程序要求给定一个日期值,计算若干天后的日期值,和给定两个日期计算它们之间相距的天...
  9. 2026年,数据中心电力市场将达到150亿美元
  10. 数据中心气流管理的基础:密闭系统的比较