2011-10-02 2 views
1

http://ccclub.cmbchina.com/ccclubnew/에서 항목 이름을 입력하고 검색 버튼을 클릭하는 과정을 시뮬레이트해야합니다. 내가왜 내 파이썬 기계화 스크립트가이 특정 사이트에서 작동하지 않을 수 있습니까

br.select_form('searchKey') 
Traceback (most recent call last): 
    File "<input>", line 1, in <module> 
    File "build\bdist.win32\egg\mechanize\_mechanize.py", line 524, in select_form 
    raise FormNotFoundError("no form matching "+description) 
FormNotFoundError: no form matching name 'searchKey' 

을 얻을

import mechanize 
import cookielib 

# Browser 
br = mechanize.Browser() 

# Cookie Jar 
cj = cookielib.LWPCookieJar() 
br.set_cookiejar(cj) 

# Browser options 
br.set_handle_equiv(True) 
br.set_handle_gzip(True) 
br.set_handle_redirect(True) 
br.set_handle_referer(True) 
br.set_handle_robots(False) 

# Follows refresh 0 but not hangs on refresh > 0 
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) 

# Want debugging messages? 
br.set_debug_http(True) 
br.set_debug_redirects(True) 
br.set_debug_responses(True) 

br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] 

br.open("http://ccclub.cmbchina.com/ccclubnew/") 

: 나는 HTML에서 직접 검사하는 경우

, 탐색 양식은 여기 아래

<span class="searchinput"> 
    <input type="text" name="searchKey" id="searchKey" maxlength="25"> 
</span> 

이름 "searchKey"로 설명은 스크립트입니다 br.forms()는 비어 있습니다.

내 질문은 : 왜 기계화 html에 존재하는 양식을 선택할 수 없습니다? 이 문제를 해결할 수있는 가능한 해결책은 무엇입니까?

감사

답변

2

이름 searchKey 자체가 가진 input은 어떤 형태입니다. 양식은 <form> 태그와 함께 제공되지만 정직하게 말하면이 검색 상자는 양식의 일부가 아닌 것처럼 보입니다. 당신은 입력 텍스트를 설정하고 그것을 눌러 시뮬레이션해야 할 것입니다. enter image description here

+0

답해 주셔서 감사합니다. 기계화가 그러한 장면에 해당하지 않는 경우 입력 텍스트를 설정하는 방법을 지정할 수 있습니까? 잠재적 인 도구는 무엇입니까? – igni

+0

죄송합니다. 지금 당장 당신을 도울 수는 없지만 ... 누구? – Remi

+0

아무런 문제가 없지만 Selenium이이를 해결할 수 있음을 알았습니다. – igni

1

lxml 또는 BeatifulSoup은 어때요?

+0

입니다. 그것은 또한 두 가지가 모두 설치되었을 때 도움이됩니다. – knitti

+1

나는 아름다운 수프를 빠르게 확인했고 대화 형 기능을 보지 못했습니다. 스프의 주요 용도가 페이지를 파싱하는 것처럼 들립니다. – igni

관련 문제