2015-01-01 2 views
1

Python 2.7에서 WebkitBrower를 사용하여 웹 페이지의 입력 텍스트 값을 가져 오는 데 문제가 있습니다.입력 된 텍스트의 값을 가져 오는 중 오류가 발생했습니다. webkitbrowser를 사용하여 주입 된 JavaScript로 수정했습니다.

from webscraping import webkit, xpath 

url = 'https://duckduckgo.com/?q=webscraping' 

user_agent='Mozilla/5.0 (compatible; MSIE 9.0; TOB 6.11; Windows NT 6.1; WOW64; Trident/5.0; MAAU)' 

w = webkit.WebkitBrowser(gui=True,user_agent=user_agent) 
w.get(url) 

token = xpath.get(w.current_html(), '//input[@id="search_form_input"]/@value') 
print token 

script = """ 
$('#search_form_input').val('555555'); 
""" 

w.js(script) 
w.wait(2) 

token = xpath.get(w.current_html(), '//input[@id="search_form_input"]/@value') 
print token 

예제의 출력은 다음과 같습니다 : 여기

는 예제 코드입니다,

webscraping 
webscraping 

대신

webscraping 
555555 

는 XPath는 (컨트롤을 찾을 수) 잘 작동하지만, 주입 된 스크립트에 의해 수정 된 값을 반환하지 않습니다.

표시된 웹 페이지에서 입력이 수정됩니다.

감사합니다. 새해 복 많이 받으세요.

답변

1

나는이 방법을 찾았습니다.

문제는 ... 스크립트에 있던 'ATTR'방법을 사용하여 속성 값이 수행해야합니다 설정 :

script = """ 
$('#search_form_input').val('555555'); 
$('#search_form_input').attr('value','555555'); 
""" 
관련 문제