分享一个某代理网站的免费代理ip的爬虫,直接复制到pycharm运行就可以了。

注意:爬取的代理ip有点坑,因为是免费的所以过期时间很快,可能1分钟后就会失效。并且在scrapy使用这些代理ip还会给你打印一堆广告。且用且珍惜。

import requests
from lxml import etree
import json class XiciProxiesSpider(object): def __init__(self):
self.start_url = 'http://www.xicidaili.com/nn'
self.headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36'
} def get_page_from_url(self, url):
response = requests.get(url,headers=self.headers)
return response.content.decode() def get_data_from_page(self, page):
# print(page)
# 把page转换为Element对象
html = etree.HTML(page)
# 获取包含代理信息的tr列表
trs = html.xpath('//*[@id="ip_list"]/tr')[1:] # 遍历trs, 获取数据信息 data = {
'http':[],
'https':[]
} for tr in trs:
try:
ip = tr.xpath('./td[2]/text()')[0]
port = tr.xpath('./td[3]/text()')[0]
ip_type = tr.xpath('./td[6]/text()')[0].lower()
# 如果ip不是http或https直接返回
if ip_type not in data.keys():
return
# 构建代理数据
item = {ip_type: '{}://{}:{}'.format(ip_type, ip, port)}
# 检查代理IP是否可用, 如果可用添加到列表中
if self.validate_ip(item, ip_type):
print(item[ip_type])
data[ip_type].append(item[ip_type])
except Exception as ex:
print(ex)
print(etree.tostring(tr)) # print(data)
return data def validate_ip(self, item, ip_type): try:
test_url = "{}://baidu.com".format(ip_type)
response = requests.get('http://baidu.com', proxies=item, timeout=2)
if response.status_code == 200:
return True
return False
except Exception as ex:
return False def save_data(self, data):
with open('proxies.json', 'w') as f:
json.dump(data, f, indent=2) def run(self):
# 获取页面内宽容
page = self.get_page_from_url(self.start_url)
# 获取可用代理IP
data = self.get_data_from_page(page)
# 保存数据
self.save_data(data) if __name__ == '__main__':
fps = XiciProxiesSpider()
fps.run()

免费代理ip爬虫分享的更多相关文章

  1. Python3.x:免费代理ip的批量获取并入库

    Python3.x:免费代理ip的批量获取并入库 一.简介 网络爬虫的世界,向来都是一场精彩的攻防战.现在许多网站的反爬虫机制在不断的完善,其中最令人头疼的,莫过于直接封锁你的ip.但是道高一尺魔高一 ...

  2. golang爬取免费代理IP

    golang爬取免费的代理IP,并验证代理IP是否可用 这里选择爬取西刺的免费代理Ip,并且只爬取了一页,爬取的时候不设置useAgent西刺不会给你数据,西刺也做反爬虫处理了,所以小心你的IP被封掉 ...

  3. fastapi+vue搭建免费代理IP网站部署至heroku

    说明 最近需要用到一些HTTP的代理,用于爬虫去爬取信息,搜索了一些网站,貌似现在这类提供免费代理IP的网站很多,刚好最近看了点vue的视频,弄个网站练练. 部署到heroku,预览地址:点击这里 F ...

  4. 码农代理免费代理ip端口字段js加密破解

    起因 之前挖过爬取免费代理ip的坑,一个比较帅的同事热心发我有免费代理ip的网站,遂研究了下:https://proxy.coderbusy.com/. 解密 因为之前爬过类似的网站有了些经验,大概知 ...

  5. 常见的User-Agent及免费代理IP网站

    常见的User-Agent 1.Android Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 ...

  6. 免费代理IP地址列表

    代理地址最后验证日期:2017-8-28 纯真 66免费代理网 #推荐 西刺免费代理IP 酷伯伯HTTP代理 快代理 proxy360.cn 站大爷 Free Proxy List 年少#不稳定 全网 ...

  7. 采集15个代理IP网站,打造免费代理IP池

    采集的站点: 免费代理IP http://ip.yqie.com/ipproxy.htm66免费代理网 http://www.66ip.cn/89免费代理 http://www.89ip.cn/无忧代 ...

  8. C#多线程爬虫抓取免费代理IP

    这里用到一个HTML解析辅助类:HtmlAgilityPack,如果没有网上找一个增加到库里,这个插件有很多版本,如果你开发环境是使用VS2005就2.0的类库,VS2010就使用4.0,以此类推.. ...

  9. 简单爬虫-爬取免费代理ip

    环境:python3.6 主要用到模块:requests,PyQuery 代码比较简单,不做过多解释了 #!usr/bin/python # -*- coding: utf-8 -*- import ...

随机推荐

  1. LeetCode 链表(旋转链表61)

    /* * 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. * 构造一个环,对链表进行处理. * *实现原理:先遍历一遍,得出链表长度,注意K可能大于len,之后令k% ...

  2. vs2013突然打不开项目,项目全部不兼容

    转载:https://forum.cocos.com/t/vs2013/40931 转载:https://jingyan.baidu.com/article/cdddd41c7c6b5353cb00e ...

  3. java如何编写多线程

    1.如何实现多线程 1.1实现Runnable接口,实现run()方法. public class Main4 implements Runnable { public static void mai ...

  4. django url 反响解析,视图

    1. 内容回顾 1. 模板语言(字符串替换) 1. 母版和继承 1. 什么时候用母版? html页面有重复的代码,把它们提取出来放到一个单独的html文件. (比如:导航条和左侧菜单) 2. 子页面如 ...

  5. HDU 1024 Max Sum Plus Plus【DP】

    Now I think you have got an AC in Ignatius.L's "Max Sum" problem. To be a brave ACMer, we ...

  6. BTrace:线上问题排查工具

    BTrace简介 GitHub地址:BTrace 下载地址:v1.3.11.3 官方使用教程:Btrace使用教程 使用场景 BTrace 是一个事后工具,所谓事后工具就是在服务已经上线了,但是发现存 ...

  7. Page.Cache

    https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.page.cache?view=netframework-4.8 Gets the ...

  8. Docker Swarm Mode 学习笔记(聊聊 replicas)

    在 Swarm 集群中, 创建服务时可以通过设置 --replicas 参数来指定此服务在工作节点上运行的任务数. 示例 这里我们来创建一个 nginx 服务作为示例: version: '3' se ...

  9. 數據監控与診斷--環形緩沖區(RING BUFFER)

    1.  環形緩沖區 動態管理視圖: sys.dm_os_ring_buffers 查看ring_buffers: Select distinct ring_buffer_type from sys.d ...

  10. 【HNOI 2017】大佬

    Problem Description 人们总是难免会碰到大佬.他们趾高气昂地谈论凡人不能理解的算法和数据结构,走到任何一个地方,大佬的气场就能让周围的人吓得瑟瑟发抖,不敢言语.你作为一个 OIer, ...