2017-12-25 1 views
1
import requests 
from bs4 import BeautifulSoup 

res = requests.get('http://aicd.companydirectors.com.au/events/events-calendar') 
soup = BeautifulSoup(res.text,"lxml") 


event_containers = soup.find_all('div', class_ = "col-xs-12 col-sm-6 col-md-8") 

first_event = event_containers[0] 
print(first_event.h3.text) 

이 코드를 사용하여 이벤트 이름을 추출 할 수 있습니다. 모든 이벤트 이름과 날짜를 루프하고 추출하는 방법을 찾으십니까? 또한 내가Python : BeautifulSoup div 클래스의 모든 제목 텍스트 추출

+0

'''movie_containers에서 영화 :''' – Martin

+0

은 그냥 들어, 이것을 시도 할 것이다 FYI 나는 방금 영화를 이벤트로 바꿨으므로 더 이해할 수 있습니다. – Mahesh

답변

1

event_containersTag 개체의 목록은 기본적으로 인하는 bs4.element.ResultSet 객체입니다 readmore 링크를 클릭 한 후 뚜렷한 인 위치 정보를 추출하기 위해 노력하고있어.
단지의 event_containers의 태그를 통해 루프와 URL, 예를 들어 날짜의 제목에 대한 h3, div.datea를 선택

for tag in event_containers: 
    print(tag.h3.text) 
    print(tag.select_one('div.date').text) 
    print(tag.a['href']) 

지금은 위치 정보를 각 URL을 방문해야하고 div.date에 텍스트를 수집하십시오.
전체 코드 :

import requests 
from bs4 import BeautifulSoup 

res = requests.get('http://aicd.companydirectors.com.au/events/events-calendar') 
soup = BeautifulSoup(res.text,"lxml") 
event_containers = soup.find_all('div', class_ = "col-xs-12 col-sm-6 col-md-8") 
base_url = 'http://aicd.companydirectors.com.au' 

for tag in event_containers: 
    link = base_url + tag.a['href'] 
    soup = BeautifulSoup(requests.get(link).text,"lxml") 
    location = ', '.join(list(soup.select_one('div.event-add').stripped_strings)[1:-1]) 
    print('Title:', tag.h3.text) 
    print('Date:', tag.select_one('div.date').text) 
    print('Link:', link) 
    print('Location:', location) 
+0

이것은 위대합니다. 위치 정보를 찾는데 도움이 될 수 있습니까? 또한이 방법을 이해하는 데 도움이 될 수 있습니까? – Mahesh

+0

나는 내 대답을 설명하려고 노력했다. 구체적인 질문이 있으면 물어보십시오. 위치 정보에 대한 링크 또는 텍스트가 필요합니까? –

+0

위치 텍스트 및 이벤트 하이퍼 링크를 찾고 있는데 – Mahesh

1

는 모든 이벤트를 얻을이 시도하고 당신이 후입니다 날짜 :

import requests 
from bs4 import BeautifulSoup 

res = requests.get('http://aicd.companydirectors.com.au/events/events-calendar') 
soup = BeautifulSoup(res.text,"lxml") 
for item in soup.find_all(class_='lead'): 
    date = item.find_previous_sibling().text.split(" |")[0] 
    print(item.text,date) 
+0

@ Shahin 이것은 위대합니다. 위치 정보를 찾는데 도움을 주시겠습니까? 또한 방법을 이해하는 데 도움이 될 수 있습니까? – Mahesh

+0

각 날짜에 관련된 정보를 얻으려면이 부분을'.split ("|") [0]'밖으로 가져옵니다. – SIM

+0

위치 정보를 얻으려면'read more' 옵션에 연결된 링크를 구문 분석 한 다음 다른 http 요청을 만들어 거기에 도달 할 수 있어야합니다. 그러나 그것은 다른 게시물을위한 것입니다. 방법 관심사의 이해에 관해서는, 나의 python 지도자 t.m.adam는 당신에게 1 개를 제공했다. 감사. – SIM