2017-09-29 9 views
0

beautifulsoup를 사용하여 페이지의 모든 링크를 가져옵니다. 내 코드는 다음과 같습니다페이지에서 링크 가져 오기 Beautiful Soup

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 링크 목록을받을 수 있나요?

답변

2

find_allhref 태그로 이 아니며 태그가 없습니다.

<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 
+0

하지만 그렇게하면 첫 번째 링크가 나타납니다. http://www.acontecaeventos.com.br/ for 루프를 수행하고 모두 가져와야합니까? – user1922364

+0

'links = soup.find_all ('a')'는 모든 링크 목록을 제공합니다. 첫 번째 링크는 답변의 맨 아래 코드에서 예로 사용했습니다. 그리고 yes는'links'리스트를 반복하여 찾은 모든 링크에 접근합니다. – Anonta

0

당신의 마지막 줄 바꾸기 :

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

그것은 스크랩 것이다 : 그 라인에 의해

links = soup.find_all('a') 

을 모두 a 태그를 사용하고 각 a 태그에 대해 href 속성을 링크 목록에 추가합니다.

[] 사이의 for 루프에 대해 자세히 알고 싶다면 List comprehensions을 참조하십시오.