如何从一组特定的域中提取链接?

时间:2019-07-19 11:31:53

标签: python python-3.x beautifulsoup

我想从网页中提取链接。链接应仅来自3个域。我如何使用BeautifulSoup做到这一点?

我有以下代码可以很好地从提到的域中提取所有链接:

for link in soup.select("a[href^='http://ABCD.tv/']"):
    print link.get('href')

但是我想添加另外两个域,例如https://AABCD.tvhttp://FFGV.VV

我尝试了|运算符,但是它不起作用:

for link in soup.select("a[href^='http://ABCD.tv/'|'https://AABCD.tv'|'http://FFGV.VV']"):

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:3)

我认为您需要的是

for link in soup.select("a[href^='http://ABCD.tv/'],a[href^='https://AABCD.tv'],a[href^='http://FFGV.VV']"):

或者,如果您的网址库很长,则可以执行以下操作:

url_bases = ['http://ABCD.tv/', 'https://AABCD.tv', 'http://FFGV.VV']
for link in soup.select(','.join(f"a[href^='{base}']" for base in url_bases)):
    # ...

(如果使用Python 3.5或更早版本,请将f"a[href^='{base}']"替换为"a[href^='{}']".format(base)