我正在使用beautifulsoup追加数组中的所有链接" get_link"。
get_link = []
for a in soup.find_all('a', href=True):
if a.get_text(strip=True):
get_link .append(a['href'])
get_link的输出:
['index.html?country=2',
'index.html?country=25',
'index.html?country=1',
'index.html?country=6',
'index.html?country=2']
如何获得以下输出?
[country=2',
country=25',
country=1',
country=6',
country=2']
答案 0 :(得分:1)
使用非空文本值和a
属性获取所有href
标记(链接)的优化方法:
links = [l.get('href').replace('index.html?','')
for l in soup.find_all('a', href=True, string=True) if l.text.strip()]
print(links)
答案 1 :(得分:0)
有很多方法可以只获得" country ="有些已经在bs4中,但如果你想要,你可以使用正则表达式:
import re
ui=['index.html?country=2',
'index.html?country=25',
'index.html?country=1',
'index.html?country=6',
'index.html?country=2']
pattern=r'(country=[0-9]{0,99})'
print("\n".join([re.search(pattern,i).group() for i in ui]))
结果:
country=2
country=25
country=1
country=6
country=2