2016-12-19 9 views
1
from bs4 import BeautifulSoup 
import requests 

url = "https://www.brightscope.com/ratings" 
headers = {'User-Agent':'Mozilla/5.0'} 
page = requests.get(url) 
soup = BeautifulSoup(page.text, "html.parser") 

data = soup.find_all('li',{"class":"more-data"})+soup.findAll('li', {"class":"more-data topten"}) 
for item in data: 
    print(item('a')) 

나는 href를 인쇄하고 싶습니다. 그러나 이것을 이해할 수 없습니다. 나는 다른 비디오를보고 그것을 얻을 수 없다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 위의 코드가 "a"태그의 내용을 인쇄하고 있지만 href가 필요하다는 것을 알고 있습니다. 당신은 당신이 당신의 li 요소의 위치를하는 방법을 향상시킬 수있는, 보조 노트로"href"링크 만 수집하는 Python 요청 및 beautifulsoup4

[a['href'] for a in item('a')] 

그리고, : 당신이 필요로하는 무엇

답변

2

은 요소의 속성에 사전 같은 액세스를 사용하는 것입니다 대신 :

data = soup.find_all('li',{"class":"more-data"})+soup.findAll('li', {"class":"more-data topten"}) 
for item in data: 
    print(item('a')) 

당신은 할 수 있습니다 :

links = soup.select("li.more-data a") 
for a in links: 
    print(a["href"]) 

여기서 li.more-data a은 이고, a 개의 요소는 모두 개의 요소와 일치하며, more-data 클래스입니다.