Search code examples
pythonweb-scrapinghyperlinkbeautifulsoup

retrieve links from web page using python and BeautifulSoup


How can I retrieve the links of a webpage and copy the url address of the links using Python?


Solution

  • Here's a short snippet using the SoupStrainer class in BeautifulSoup:

    import httplib2
    from bs4 import BeautifulSoup, SoupStrainer
    
    http = httplib2.Http()
    status, response = http.request('http://www.nytimes.com')
    
    for link in BeautifulSoup(resp, 'html.parser', parse_only=SoupStrainer('a')):
        if link.has_attr('href'):
            print(link['href'])
    

    The BeautifulSoup documentation is actually quite good, and covers a number of typical scenarios:

    https://www.crummy.com/software/BeautifulSoup/bs4/doc/

    Edit: Note that I used the SoupStrainer class because it's a bit more efficient (memory and speed wise), if you know what you're parsing in advance.