2013-11-20 3 views
3

버튼을 클릭하여 웹 사이트를 긁어 내려합니다. 방화 광과 Google 크롬 콘솔을 사용해 보았습니다. 단추를 클릭하지 않으려는 요청을 보내지 못했습니다. 나는 다음과 같은 URLBS4 python을 사용하여 aspx 페이지를 클릭하여 긁음

http://www.icsi.edu/Facilities/MembersDirectory.aspx

+0

귀하의 링크 나를 위해 나뉩니다. –

+0

사용해보기 http://www.icsi.edu/Member/MembersDirectory.aspx –

답변

3

에있는 검색 버튼을 클릭 할 때 나는 셀레늄의 WebDriver 사용하는 것이 처리하는 가장 쉬운 방법을 생각 요청으로 두의 .js 파일을보고하고있다.

링크 : 설치 이있는 경우 http://www.seleniumhq.org/docs/03_webdriver.jsp#introducing-webdriver

, 간단한

pip install selenium 

작동합니다. 브라우저로 Firefox를 사용하는 것이 좋습니다.

Selenium을 사용하여 페이지를 다운로드 한 다음 나중에 BS4와 구문 분석 할 수 있습니다. 다음은 "Foo"및 "Bar"를 양식에 입력 한 다음 "검색"버튼을 클릭하는 간단한 스크립트입니다.

from selenium import webdriver 
driver = webdriver.Firefox() 
driver.get("http://www.icsi.edu/Member/MembersDirectory.aspx") 
# Alternatively, link directly to the form: 
# driver.get("https://www.icsi.in/student/Members/MemberSearch.aspx?SkinSrc=%5BG%5DSkins/IcsiTheme/IcsiIn-Bare&ContainerSrc=%5BG%5DContainers/IcsiTheme/NoContainer") 

# Locate the elements. 
first = driver.find_element_by_id("dnn_ctr410_MemberSearch_txtFirstName") 
last = driver.find_element_by_id("dnn_ctr410_MemberSearch_txtLastName") 
search = driver.find_element_by_id("dnn_ctr410_MemberSearch_btnSearch") 

# Input the data and click submit. 
first.send_keys("Foo") 
last.send_keys("Bar") 
search.click() 

는 보너스로, 여기에 결과의 페이지를 반복하는 방법은 다음과 같습니다

# next_page should be redeclared every time you visit a new page. 
next_page = driver.find_element_by_class_name("rgPageNext") 
next_page.click() 
관련 문제