鱼C论坛

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

匹配btc查询网站的地址链接的问题

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

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

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

x
本帖最后由 oooipussy 于 2020-6-20 17:59 编辑
import urllib.request
import re

block = "0000000000000dc3998b2615c2a1754dd38eda2ab80624e9562873c5b20a4713"
block_url = "https://btc.com/" + block
block_page = '?page=2&order_by=tx_block_idx&asc=1'
print (block_url)

response = urllib.request.urlopen(block_url)

html = response.read().decode('utf-8','ignore')

result_next_block = re.search('(https://btc.com/)(\d(\w|\d){33})(")' , html)

print (result_next_block)
上面是 对某块 网页的读取

在取地址的时候 只能取得地址 33位 而不是 34位 为什么

我的正则 刚刚学的
也就是这句:
result_next_block = re.search('(https://btc.com/)(\d(\w|\d){33})(")' , html)



结果是这样的:
https://btc.com/0000000000000dc3 ... 4e9562873c5b20a4713
<_sre.SRE_Match object; span=(17373, 17424), match='https://btc.com/16aMVLpAWj9zDXpooSx9WyXxkLEwgHwL6>   这里最后还应该有一个S ,也就是正确结果是16aMVLpAWj9zDXpooSx9WyXxkLEwgHwL6S
但是我为什么取不到?
哪里不对么?





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

使用道具 举报

 楼主| 发表于 2020-6-21 18:34:33 | 显示全部楼层
无人?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-21 19:56:01 | 显示全部楼层
本帖最后由 suchocolate 于 2020-6-21 20:37 编辑

你的匹配其实是能匹配的,用print打印一下可以看到第2子组就是:
print(result_next_block.groups())
('https://btc.com/', '16aMVLpAWj9zDXpooSx9WyXxkLEwgHwL6S', 'S', '"')
# 想获取第2子组:
print(result_next_block.group(2))
不过我觉得没必要那么麻烦还要算位,还要考虑子组,可以直接匹配输出:
result_next_block = re.findall(r'href="https://btc.com/(.*?)" class="txio-address"', html)[0]
print(result_next_block)
16aMVLpAWj9zDXpooSx9WyXxkLEwgHwL6S
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-22 11:06:54 From FishC Mobile | 显示全部楼层
suchocolate 发表于 2020-6-21 19:56
你的匹配其实是能匹配的,用print打印一下可以看到第2子组就是:
不过我觉得没必要那么麻烦还要算位,还要 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 11:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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