首页 > 其他分享 >练习:ip保存网页内容

练习:ip保存网页内容

时间:2023-10-30 17:14:36浏览次数:33  
标签:url ip 练习 ips read 网页内容 80 txt

有一个存放ip的txt文本,通过读取文本内的所有ip,然后判断该ip的80端口上面有没有部署网站,如果有,就把这个网站首页的内容写入文本

首次理解

1、读取文本内所有ip
2、读取出来的ip拼接下80端口,再通过200状态码判断,存在就写入内容到txt中

import requests
#从文本中获取ip地址
with open( 'ip.txt','r',encoding='utf-8') as a:
    ips = a.read().splitlines()

#判断ip的80端口是否有开,有就将首页内容写在text.txt中
with open('text.txt','w') as a:
    for i in ips:
        url = 'http://'+i+':80'
        try:
            res = requests.get(url)
            if res.status_code == 200:
                a.write(res.content.decode('utf-8')+'\n')
        except:
            continue

image.png

二次理解

用顺序结构的话,后期维护也不方便,或许可以封装成方法的形式;
其实就是文件读取+文件写入;
其中写入时的条件是ip开了80,if url == 'http://:80'是判断是否到了最后一行

#从文本中读取ip
def read(ip):
    with open(ip,'r',encoding='utf-8') as a:
        return a.read().splitlines()
#判断ip是否开放80,开放的话写入在text.txt中
def pd(ips):
    with open('text.txt', 'w', encoding='utf-8')as a:
        for i in ips:
            url = 'http://'+i+':80'
            try:
                res = requests.get(url)
                if url == 'http://:80':
                    continue
                elif res.status_code == 200:
                    a.write(res.content.decode())
            except:
                pass
pd(read('ip.txt'))

image.png

三次理解

想了一下,其实可以拆分成3个模块,这样也许会更好
读取、判断、写入

# 一批ip文本,读取ip,然后判断这个ip的80端口上面有没有部署网站,
# 如果有,就把这个网站首页的内容写入文本
import requests
#从文本中读取ip
def read(ip):
    with open(ip,'r',encoding='utf-8') as a:
        return a.read().splitlines()

#判断ip是否开放80
def pd(ips):
    for i in ips:
        url = 'http://'+i+':80'
        try:
            if requests.get(url).status_code == 200:
                return url
        except:
            pass

#开放的话写入在text.txt中
def xr(url):
    with open('text.txt','w',encoding='utf-8')as a:
        a.write(requests.get(url).content.decode('utf-8'))

ips = read('ip.txt')
urls = pd(ips)
xr(urls)

心得体会

把具体实现的功能点写在方法中,需要用到的话直接调用就行,这样确实方便多了,而且后面有需要对代码调整,只需要修改对应的方法即可;用顺序结构的话,可能就得改很多东西了,而且改了后可能就运行不起来了,后面能用方法表达的尽量用方法,这样不仅可阅读性更好,而且后期维护起来也更方便

标签:url,ip,练习,ips,read,网页内容,80,txt
From: https://www.cnblogs.com/JFSec/p/17798280.html

相关文章

  • ISIS IPV6
    过程1)isis配置isis100is-levellevel-2cost-stylewidenetwork-entity49.0001.0020.0200.2002.00#ipv6enabletopologystandard//ipv6与standard(ipv4和ipv6同时启用)#2)端口配置isis#interfaceGigabitEthernet0/0/1ipv6enable ipv6address2023:23::2/64 ......
  • 页脚 ip地址显示插件
    <scripttype="application/javascript">functiongetgeoip(json){varfooterText="IP地址:"+json.ip+""+"["+json.country+"]";document.getElementById("ip-plugin").innerHTML=fo......
  • JavaScript数据类型的转换
    一、字符串类型的转换1、自动转换<script>varstr='hello';varnum=100;console.log(str+num);console.log(typeof(str+num));</script>2、强制转换String(),object.toString()<script>//string()var......
  • Python构造代理IP池提高访问量
    前言爬虫程序是批量获取互联网上的信息的重要工具,在访问目标网站时需要频繁发送请求,为了避免被目标网站封禁IP地址,我们需要使用代理IP来代替自己的IP地址进行访问。本文将介绍如何使用Python构建代理IP池,让爬虫程序更加稳定和高效地运行。一、代理IP是什么代理IP是指由第......
  • emscripten基于llvm的webassembly 编译器
    emscripten是一个基于llvm的webassembly编译器包含的特性可移植支持编译现有的c,c++以及其他语言项目,使用lvvm编译为支持nodejs,浏览器,以及wasm运行时运行的服务提供apis支持将openGL转换为WebGL,pthreads转换为webapi。。。快速集成了不少工具(llvm,emscripten,binar......
  • JavaScript 中的单例模式
    单例模式是JavaScript中最流行的设计模式之一。单例模式的优点全球访问点:提供对实例的单点访问,可以轻松管理全球资源。内存效率:该模式确保只有一个实例,这特别节省内存。延迟初始化:仅在需要时才创建实例,从而提高性能这是一种创建模式,可确保类只有一个实例,同时提供对该实例......
  • TypeScript入门到精通——TypeScript类型系统基础——类
    类 JavaScript是一门面向对象的编程语言,它允许通过对象来建模和解决实际问题。同时,JavaScript也支持基于原型链的对象继承机制。虽然大多数的面向对象编程语言都支持类,但是JavaScript语言在很长一段时间都没有支持它。在JavaScript程序中,需要使用函数来实现类的功能。 ......
  • TypeScript入门到精通——TypeScript类型系统基础——类型别名
    类型别名 如同接口声明能够为对象类型命名,类型别名声明能够为TypeScript中的任意类型命名。一、类型别名声明 类型别名声明能够定义一个类型别名,它的基本语法如下所示:typeAliasName=Type 在该语法中,type是声明类型别名的关键字;AliasName表示类型别名的名称;Ty......
  • 如何避免JavaScript中的内存泄漏?
    前言过去,我们浏览静态网站时无须过多关注内存管理,因为加载新页面时,之前的页面信息会从内存中删除。然而,随着单页Web应用(SPA)的兴起,应用程序消耗的内存越来越多,这不仅会降低浏览器性能,甚至会导致浏览器卡死。因此,在编码实践中,开发人员需要更加关注与内存相关的内容。因此,小编今天将......
  • 如何避免JavaScript中的内存泄漏?
    前言过去,我们浏览静态网站时无须过多关注内存管理,因为加载新页面时,之前的页面信息会从内存中删除。然而,随着单页Web应用(SPA)的兴起,应用程序消耗的内存越来越多,这不仅会降低浏览器性能,甚至会导致浏览器卡死。因此,在编码实践中,开发人员需要更加关注与内存相关的内容。因此,小编今天......