某些html链接的正则表达式

2024-09-30 16:31:02 发布

您现在位置:Python中文网/ 问答频道 /正文

EDOT:你们说得对,bs4更好,而且已经开始使用它了,它更直观,而且可以找到链接 虽然我还在挣扎,哈哈 非常感谢大家

看了一眼,这个好像不在其他帖子里

所以我很确定我可以使用regex来实现这一点,因为这个html页面中的15个链接定义得很好,我想,这是一个有15个产品链接的amazon页面,我想要这些链接 输入是这个吗

<a href="\n\n\n\n\n\n https://www.amazon.co.uk/Nikon-Coolpix-L340-Bridge-Camera/dp/B00THKEKEQ/ref=zg_bs_560836_2&#10;">Nikon Coolpix L340 Bridge Camera - Bl...</a>

我试过了

import re

links = re.findall(r'^(/n/n/n/n/n/n).(")', page)

哪个行不通,有什么想法吗


Tags: reamazon链接html页面直观帖子regex
2条回答

使用下面的regexp:

s = """<a href="\n\n\n\n\n\n https://www.amazon.co.uk/Nikon-Coolpix-L340-Bridge-Camera/dp/B00THKEKEQ/ref=zg_bs_560836_2&#10;">Nikon Coolpix L340 Bridge Camera - Bl...</a>"""

re.findall('(?<=\n\n\n\n\n\n)(.*?)"', s)

以前的regexp是在字符串的开头寻找\n...匹配,而不是像示例字符串那样在字符串中间寻找\n匹配

这可能也有用。 regex不关心\n,只是假设链接以http开头

links = re.findall('http.*(?=">)', page)

或者抓取整个<a>标记并从捕获组获取url

links = re.findall('<a href="(?:\\n)*(.*)".*>.*<\/a>', page)

相关问题 更多 >