鱼C论坛

 找回密码
 立即注册
查看: 1151|回复: 20

正则循环匹配爬取文件

[复制链接]
发表于 2020-5-20 14:44:35 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 abababab 于 2020-5-22 15:44 编辑

知道网页附件路径
https://www.test.com/202003/03/130943sh5rzvjh65tktz55.png


只知道这个链接,没有其他链接的情况下,能爬取全部?

循环匹配下载?



For x = 1 To 31
For y = 0 To [0-9][a-z][A-Z]


https://www.test.com/202003/x/y.png

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-20 14:46:45 | 显示全部楼层
xpath 不行吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 14:55:09 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-20 16:57 编辑

这样是你想要的结果吗?
import re

str1 = """
[url]https://www.test.com/20204503/03/134530943sh65tk5rzkzv8t.png[/url]
[url]https://www.test.com/2135403/03/130943sh55rz55jh65tjhtz55.png[/url]
[url]https://www.test.com/2015403/03/130943sh5rzv5h65tk4tz552.png[/url]
"""

base = 'https://www.test.com/'
temp = re.findall(r'https://www.test.com/(.+?).png',str1)
print(temp)

for i in range(len(temp)):

    temp[i] = base+temp[i]
print(temp)


如果对你有帮助,就给个最佳吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 14:56:01 | 显示全部楼层
原始网页是什么,test.com登陆不上。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 16:59:12 | 显示全部楼层



import re

str1 = """
https://www.test.com/20204503/03/134530943sh65tk5rzkzv8t.png
https://www.test.com/2135403/03/130943sh55rz55jh65tjhtz55.png
https://www.test.com/2015403/03/130943sh5rzv5h65tk4tz552.png
"""

base = 'https://www.test.com/'
temp = re.findall(r'https://www.test.com/(.+?).png',str1)
print(temp)

for i in range(len(temp)):

    temp[i] = base+temp[i]
print(temp)


我发现代码带链接的会被审核?好烦....
你是想要这种效果吗?
如果对你有帮助的话记得给个最佳哈~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-5-20 19:52:14 | 显示全部楼层

问题是str1只知道其中一个,其他的不知道,所以想用正则找出全部。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 19:53:03 | 显示全部楼层
abababab 发表于 2020-5-20 19:52
问题是str1只知道其中一个,其他的不知道,所以想用正则找出全部。。。

只知道其中一个? 那没办法找规律了呀,怎么会只知道一个呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-20 19:56:06 | 显示全部楼层
suchocolate 发表于 2020-5-20 14:56
原始网页是什么,test.com登陆不上。

只是举例。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-20 20:13:33 | 显示全部楼层
Twilight6 发表于 2020-5-20 19:53
只知道其中一个? 那没办法找规律了呀,怎么会只知道一个呢?

For x = 1 To 31
For y = 0 To [0-9][a-z][A-Z]


https://www.test.com/202003/x/y.png

有没可能用for循环?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 20:17:55 | 显示全部楼层
abababab 发表于 2020-5-20 20:13
For x = 1 To 31
For y = 0 To [0-9][a-z][A-Z]

我看你发的链接数据全是https://www.test.com/开头的 我觉的你可以用我这个匹配的到全部了
base = 'https://www.test.com/'
temp = re.findall(r'https://www.test.com/(.+?).png',str1)
print(temp)

for i in range(len(temp)):

    temp = base+temp
print(temp)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 20:19:15 | 显示全部楼层
abababab 发表于 2020-5-20 20:13
For x = 1 To 31
For y = 0 To [0-9][a-z][A-Z]

没见过这种用法,不知道可以不可以
不过我看你给的链接数据全部都是
'https://www.test.com/'
开始的 ,那我这个代码就没问题可以匹配到全部附件
base = 'https://www.test.com/'
temp = re.findall(r'https://www.test.com/(.+?).png',str1)
print(temp)

for i in range(len(temp)):

    temp = base+temp
print(temp)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-21 20:25:50 | 显示全部楼层
Twilight6 发表于 2020-5-20 20:19
没见过这种用法,不知道可以不可以
不过我看你给的链接数据全部都是
'https://www.test.com/'

NameError: name 'str1' is not defined
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-21 20:26:27 | 显示全部楼层
abababab 发表于 2020-5-21 20:25
NameError: name 'str1' is not defined


str1只是个变量名而已,你改成你自己的字符串变量名就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-21 20:27:26 | 显示全部楼层
abababab 发表于 2020-5-21 20:25
NameError: name 'str1' is not defined

如果对你有帮助 记得给 个最佳~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-21 20:57:01 | 显示全部楼层
多发几个连接 130943sh5rzvjh65tktz55   看看有啥规律
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-21 21:55:23 | 显示全部楼层
Twilight6 发表于 2020-5-21 20:27
如果对你有帮助 记得给 个最佳~

知道是变量名,问题是这变量哪来的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-21 22:24:22 | 显示全部楼层
均昊山 发表于 2020-5-21 20:57
多发几个连接 130943sh5rzvjh65tktz55   看看有啥规律

005318iq0rjkq0ak80c8as.png
151611nwnsnwv90gagfpgv.png

都是随机字符吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-21 22:52:30 | 显示全部楼层
abababab 发表于 2020-5-21 22:24
005318iq0rjkq0ak80c8as.png
151611nwnsnwv90gagfpgv.png

/ .png 这个应该可以吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-21 23:01:34 | 显示全部楼层
需要更多的链接,RE本身比较看重规则,说白了就是规则提取


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-22 07:13:19 From FishC Mobile | 显示全部楼层
越看越不明白,开始觉得是findall uri,后面又说不知变量不知哪里来,觉得是test url,拎不清,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 04:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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