2009-12-08 2 views
0

RoR이 기계어을 사용하여 대학에서 간단한 양식을 검색하려고합니다. 코드는 Google 검색에 잘 작동하지만 결과에 검색 양식을 반환합니까? 나는 정말로 혼란 스럽다. 어떤 충고? 감사!기발한 https 양식으로 기계 번역하기 RoR

ruby script/console 
require 'mechanize' 
agent = WWW::Mechanize.new 
agent.get("https://www.owens.edu/cgi-bin/class.pl/") 
agent.page.forms 
form = agent.page.forms.last 
form.occ_subject = "chm" 
form.submit 
+0

나를 위해 잘 작동하는 것 같습니다. 무슨 문제 있니? 또한 SO 게시물에 데이터를 제출하는 전체 스크립트를 남겨두면 많은 테스트 데이터를 얻게됩니다. 그러나 그것은 나쁘지 않을 수도 있습니다. –

답변

0

해결했습니다. form.submit이 호출되면 form.buttons의 마지막 단추가 사용할 단추라고 가정합니다. form.buttons의 마지막 버튼은 고급 형식을위한 것이므로 결과 페이지 객체는보다 포괄적 인 고급 검색 양식이긴하지만 다른 형식입니다.

require 'mechanize' 
agent = WWW::Mechanize.new 
agent.get("https://www.owens.edu/cgi-bin/class.pl/") 
agent.page.forms 
form = agent.page.forms.last 
form.occ_subject = "chm" 
result = agent.submit(form, form.buttons.first) 

result.parser.css('table.cs-table-settings tr.tbl-class-fill-b td font b').map { |v| v.text.strip } 

=> ["Principles of Chemistry", "Principles of Chemistry", "Principles of Chemistry", "Principles of Chemistry", …] 

마지막으로 우리는 맨 아래에 있습니다! HTML은 끔찍한 일이므로 XPath 모자를 써야합니다! :)

+0

굉장! 나는 그것이 버튼 문제라고 생각했다. 나는 직장 상사를 프로그램 할 수있게되었습니다. 적어도 가난한 사람을 다른 일을 위해 얼마 동안은 구할 수 있습니다. –