鱼C论坛

 找回密码
 立即注册
查看: 2788|回复: 3

求大神帮忙写一段代码(注释尽量写详细点,有偿)

[复制链接]
发表于 2021-1-26 22:49:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
【难度有一些请同学们做好准备】假如现有一组爬虫爬取的数据,每个元素包含了一个IP地址域端口号,[("192.168.1.109",6000),("192.168.1.109",None),("192.168.2.255",8000),("192.168.100.200",8080),("192.168.1.8600",6000),("192.168.1.199",8000),("192.168.1.500",6000),("192.168.1.50",80000),("192.168.1.50",'80000')],里面的部分数据有错误,

请去去除错误数据,保留正确的数据!编写代码中请使用列表推导式

提示:

    1. ip地址192.168.1.205 由点号分割的4个整数范围是0~255,端口是大于1~65535的数字

     2. 可以借助函数方法、灵活使用列表推导式、字符串操作、逻辑运算 等

要求: 请同学们,列表推导式以外不要使用循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-27 00:06:32 | 显示全部楼层
“端口是大于1~65535的数字” ?

import re

all_ip_address = [
    ("192.168.1.109", 6000),
    ("192.168.1.109", None),
    ("192.168.2.255", 8000),
    ("192.168.100.200", 8080),
    ("192.168.1.8600", 6000),
    ("192.168.1.199", 8000),
    ("192.168.1.500", 6000),
    ("192.168.1.50", 80000),
    ("192.168.1.50", "80000"),
    ("1.168.1.50", "8000"),
]

ip_rule = r"^((2[0-4]\d|25[0-5]|[0-1]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[0-1]?\d\d?)$"

for address in all_ip_address:
    ip, port = address
    ip_result = re.search(ip_rule, ip)
    if ip_result and isinstance(port, int) and 1 <= port <= 65535:
        print(address)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-25 15:28:40 | 显示全部楼层
°蓝鲤歌蓝 发表于 2021-1-27 00:06
“端口是大于1~65535的数字” ?

谢谢 不好意思啊  现在才看到  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-25 15:29:13 | 显示全部楼层
°蓝鲤歌蓝 发表于 2021-1-27 00:06
“端口是大于1~65535的数字” ?

我这边在当天就完成了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 11:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表