代码之家  ›  专栏  ›  技术社区  ›  user1922364

从一个页面获取所有链接

  •  13
  • user1922364  · 技术社区  · 7 年前

    我使用beautifulsoup从一个页面获取所有链接。我的代码是:

    import requests
    from bs4 import BeautifulSoup
    
    
    url = 'http://www.acontecaeventos.com.br/marketing-promocional-sao-paulo'
    r = requests.get(url)
    html_content = r.text
    soup = BeautifulSoup(html_content, 'lxml')
    
    soup.find_all('href')
    

    []
    

    如何获取该页面上所有href链接的列表?

    3 回复  |  直到 7 年前
        1
  •  19
  •   Anonta    7 年前

    find_all 要查找的方法 href 标签, 属性。

    <a>

    links = soup.find_all('a')
    

    稍后您可以访问他们的 href

    link = links[0]          # get the first link in the entire page
    url  = link['href']      # get value of the href attribute
    url  = link.get('href')  # or like this
    
        2
  •  13
  •   Nrzonline Tamer Tas    7 年前

    替换最后一行:

    links = soup.find_all('a')
    

    按照这句话:

    links = [a.get('href') for a in soup.find_all('a', href=True)]
    

    它将废弃所有 a 标签,以及每个 href

    如果您想了解更多关于 [] List comprehensions

        3
  •  0
  •   Oliver Oliver    5 年前

    href 无论标签的使用:

    href_tags = soup.find_all(href=True)   
    hrefs = [tag.get('href') for tag in href_tags]