我想从给定的URl中提取.zip文件名。这是我的代码 -
import re
print(re.findall(r'href=[\'"]?([^\'" >]+)','<a href="http://www.example.com/files/world_data1.zip"><b>World Data Part 1</b></a> <br/> <a href="http://www.example.com/files/world_data2.zip"><b>World Data Part 2</b></a>'))
例如:
输入 - <a href="http://www.example.com/files/world_data1.zip"><b>World Data Part 1</b></a> <br/> <a href="http://www.example.com/files/world_data2.zip"><b>World Data Part 2</b></a>
预期输出 - world_data1.zip,world_data2.zip
。
我尝试以各种格式使用.zip $,但我得到一个空列表。任何人都可以帮我这个吗?
答案 0 :(得分:0)
您可以使用
export PATH=/cool/new/version/perl:$PATH
# now execute script on following line
/path/to/myscript.pl
屈服
import re
html = """' <a href="http://www.example.com/files/world_data1.zip"><b>World Data Part 1</b></a> <br/> <a href="http://www.example.com/files/world_data2.zip"><b>World Data Part 2</b></a>'"""
rx = re.compile(r"""href=(["'])(.*?)\1""")
links = [filename
for m in rx.finditer(html)
for filename in [m.group(2).split('/')[-1]]
if filename.endswith('.zip')]
print(links)
<小时/> 我们的想法是首先获取
['world_data1.zip', 'world_data2.zip']
属性,按href
拆分并检查最后一部分是否以/
结尾。.zip
和一些BeautifulSoup
查询等解析器
有关表达式,请参阅a demo on regex101.com。
答案 1 :(得分:0)
你可以试试这个:
xpath
或者,更严格地说,使用以下方式:
import re
s = ' <a href="http://www.example.com/files/world_data1.zip"><b>World Data Part 1</b></a> <br/> <a href="http://www.example.com/files/world_data2.zip"><b>World Data Part 2</b></a>'
print(re.findall(r'href="[^"]+?/([^/"]+\.zip)"', s))