我想从网页中提取链接。链接应仅来自3个域。我如何使用BeautifulSoup做到这一点?
我有以下代码可以很好地从提到的域中提取所有链接:
for link in soup.select("a[href^='http://ABCD.tv/']"):
print link.get('href')
但是我想添加另外两个域,例如https://AABCD.tv
和http://FFGV.VV
我尝试了|
运算符,但是它不起作用:
for link in soup.select("a[href^='http://ABCD.tv/'|'https://AABCD.tv'|'http://FFGV.VV']"):
任何帮助将不胜感激!
答案 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)
)