웹페이지에 접속하여 html 체크박스를 체크하는 방법

웹페이지에 접속하여 html 체크박스를 체크하는 방법

내가 자주 가는 커피숍에서는 로그인 페이지의 확인란을 선택하면(TOS 수락) 캡티브 포털에서 Wi-Fi 액세스를 허용합니다. 내가 몇 시간 동안 거기 있지 않았고 그들이 15분마다 또는 100MB마다 계속해서 묻지 않았다면 문제가 되지 않을 것입니다.

Bash, Perl, Python 또는 Ubuntu에서 흔히 사용되는 기타 리소스에 연결하는 프로세스를 자동화할 수 있습니까?

HTML 조각은 다음과 같습니다.

<form action="http://1.1.1.1/reg.php" method="post" name="form2">
<input name="url" value="2EB8F3587D88E953591ABBE4833943D6C1241D2842D3D2FC83D98ED1D0613DC1BFFB8380" type="hidden">
      <center>
        <p><img src="logo_main.jpg" align="absmiddle" height="125" width="134"> 
        </p>
        <p> 
          <input name="checkbox" id="checkbox" value="checkbox" type="hidden">
          <input checked="checked" name="checkbox2" value="checkbox" onchange="evalue(this);" type="checkbox">
          <font face="Georgia, Times New Roman, Times, serif">I accept the <a href="http://1.1.1.1/tos.htm" target="_top">Terms and Conditions</a></font> 
        </p>
        <p>
          <input name="Submit" value="Enter" id="button1" type="submit">
      </p></center>
</form>

답변1

url여기의 값은 필드 이름에서 알 수 있는 것과 다른 일종의 세션 키라고 가정합니다 . 예를 들어 다음을 사용하여 얻을 수 있습니다 sed.

wget -qO- http://… | sed -n 's/<input name="url" value="\([^"]\+\)" type="hidden">/\1/p'

그런 다음 이를 사용하여 직접 요청을 작성할 수 있습니다 curl. 요청을 마우스 오른쪽 버튼으로 클릭하여 curl명령줄로 사본을 얻을 수 있는 Chrome 개발자 도구로 이동하는 것이 도움이 될 수 있습니다 .

또는 Selenium을 사용할 수도 있습니다. Python용 Selenium을 사용하면 코드는 다음과 같습니다.

driver.find_element_by_name('checkbox2').click()
driver.find_element_by_id('button1').click()

관련 정보