求大神帮忙写一段代码(注释尽量写详细点,有偿)
【难度有一些请同学们做好准备】假如现有一组爬虫爬取的数据,每个元素包含了一个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. 可以借助函数方法、灵活使用列表推导式、字符串操作、逻辑运算 等
要求: 请同学们,列表推导式以外不要使用循环 “端口是大于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\d|25|?\d\d?)\.){3}(2\d|25|?\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)
°蓝鲤歌蓝 发表于 2021-1-27 00:06
“端口是大于1~65535的数字” ?
谢谢 不好意思啊现在才看到 °蓝鲤歌蓝 发表于 2021-1-27 00:06
“端口是大于1~65535的数字” ?
我这边在当天就完成了
页:
[1]