기계화를 사용하여 webform을 조작하는 작은 스크립트가 있습니다. 여기에 양식의 스크린 샷이다html 테이블에서 기계식으로 조작 할 라인 결정
코드 (하단의 전송 버튼없이 그것에 대해 걱정하지 마십시오..) :
import re
import mechanize
bs = mechanize.Browser()
server = raw_input("IP to retry: ")
bs.open("http://"+server+"/avicapture.html")
assert bs.viewing_html()
bs.select_form(name="avistatus_form")
form = bs.form
bs.find_control("AVI_STATUS_ACTION").items[1].selected=True
bs.find_control("avistatuscheck0").items[0].selected=True
bs.find_control("avistatuscheck1").items[0].selected=True
bs.find_control("avistatuscheck2").items[0].selected=True
bs.find_control("avistatuscheck3").items[0].selected=True
bs.find_control("avistatuscheck4").items[0].selected=True
bs.find_control("avistatuscheck5").items[0].selected=True
print "Sending retry signal."
bs.submit()
print server+" Retried!"
그대로, 그것을 확인합니다 여섯 개의 상자 모두를 선택하고 드롭 다운 옵션 (AVI_STATUS_ACTION)과 함께 양식을 [1]로 제출하십시오.
어떤 행 (올바른 avistatuscheck # 컨트롤 (확인란)과 상관 관계가있는)이 가장 최근의 행인지 결정하고 해당 확인란을 선택한 상태로 양식을 제출하려면 어떻게해야합니까? 더 많은 파일이 전송되면 누적되며, 다시 전송할 필요가 없습니다. 가장 최근의 것.
정규식에 대해 조금 알고 있습니다. urllib2를 사용하여 html 페이지를 문자열로로드하고 현재 진행중인 'Ingress'전송에서 백분율을 가져올 수 있지만 올바른 컨트롤 (체크 박스)에 해당하는 가장 최근 전송을 결정하는 방법에 대해서는 약간 분실되어 있습니다.
당신이 포함 할 수 있습니다 또는 예제 파일'avicapture.html'에 링크 하시겠습니까? 스크린 샷은 실제 구조가 어떻게 보이는지만을 암시합니다. – phihag
물론입니다. [avicapture.html] (http://www.whatdoiknow.net/dump/avicapture.html) – oorahduc
불완전한 덤프 인 것 같습니다. 하나의 경우,