鱼C论坛

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

请教一个关于网络爬虫寻找IP的错误

[复制链接]
发表于 2019-6-11 11:17:17 | 显示全部楼层 |阅读模式

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

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

x
这是我的代码,功能是从快代理网站自动获取前10个代理IP的地址,但运行后得到的确实重复的IP,请教一下问题出在哪里?
import urllib.request
import re

def open_url(url):
    response = urllib.request.urlopen(url)
    html = response.read()
    return html

def get_ip(url):
    html = open_url(url).decode('utf-8')
    j = 0
    for i in range(10):
        searchs = re.search(r'(([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])\.){3}([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])',html[j:])
        j = searchs.span()[1]
        print(searchs.group())



if __name__ == '__main__':
    url = 'https://www.kuaidaili.com/free/'
    get_ip(url)
运行结果:
163.204.244.21
183.158.206.158
163.204.244.21
163.204.244.21
163.204.244.21
163.204.244.21
163.204.244.21
163.204.244.21
163.204.244.21
163.204.244.21


   
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-6-11 23:33:04 | 显示全部楼层
用你的代码打印了searchs得到以下内容:
  1. <re.Match object; span=(9934, 9946), match='49.86.180.21'>
  2. 49.86.180.21
  3. <re.Match object; span=(434, 448), match='125.123.139.20'>
  4. 125.123.139.20
  5. <re.Match object; span=(9486, 9498), match='49.86.180.21'>
  6. 49.86.180.21
  7. <re.Match object; span=(436, 448), match='49.86.180.21'>
  8. 49.86.180.21
  9. ...
复制代码

你的问题出在j = searchs.span()[1]
第一次j=0。html[0:]继续往下找。找到49.86.180.21
第二次j=9946。html[9946:]继续往下找。找到125.123.139.20
第三次j=448。html[448:]继续往下找。等于是跳回到前面去了。所以又找到49.86.180.21。
所以一直循环。就在两个IP中一直重复了。
顺便说一下,你的正则写错了。对照网站代理IP爬的少最后一位。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-12 12:25:49 | 显示全部楼层
hjx123hjx 发表于 2019-6-11 23:33
用你的代码打印了searchs得到以下内容:

你的问题出在j = searchs.span()[1]

我这里没有写正则啊,只是奇怪为什么9946会跳到448
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-12 14:09:54 | 显示全部楼层
1039533984 发表于 2019-6-12 12:25
我这里没有写正则啊,只是奇怪为什么9946会跳到448

你都是从html这个列表中查找,第二次从html的9946开始找,而searchs.span()只会记录找到的IP是9946之后的第几个字符串,不是以html的第0个字符开始计数的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-16 07:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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