views:

303

answers:

1

How can I use BeautifulSoup to find all the links in a page pointing to a specific domain?

+3  A: 

Use SoupStrainer,

from BeautifulSoup import BeautifulSoup, SoupStrainer
import re

# Find all links
links = SoupStrainer('a')
[tag for tag in BeautifulSoup(doc, parseOnlyThese=links)]

linkstodomain = SoupStrainer('a', href=re.compile('example.com/'))

Edit: Modified example from official doc.

viksit
I would be more selective with the regex; that one could result in false positives.
Ignacio Vazquez-Abrams
@Ignacio - right, this example has that caveat - the regex should obviously be as detailed as possible so as to avoid those false positives.
viksit