Mechanize를 사용하여 .aspx 웹 사이트에서 GUID를 추출하기 위한 POST 요청
P粉564192131
P粉564192131 2024-04-02 12:43:40
0
1
538

전 세계적으로 고유한 식별자를 생성하는 https://www.guidgenerator.com/online-guid-generator.aspx라는 웹사이트가 있습니다. 저는 Perl의 Mechanize를 사용하여 가이드를 추출하기 위해 웹사이트에 게시하려고 합니다. 나는 이것이 자바스크립트 기반이라는 것을 알고 있지만 숫자를 가져오기 위해 올바른 게시물을 만들 수 있는지 궁금합니다. 브라우저에서 추적하여 요청의 모든 헤더를 얻었지만 반환된 HTML에는 GUID가 포함되어 있지 않습니다.

성공적인 실행 결과는 다음과 같습니다.

<textarea name="txtResults"row="2" cols="20" id="txtResults" style="font-family:Courier New,Courier,monospace;font-size:Larger;font-weight:bold; 높이: 152px; 너비: 421px; ">qk5DF22bhkm4C2AwZ5OcZw==</textarea>

이것은 내 스크립트입니다:

<textarea name="txtResults"row="2" cols="20" id="txtResults" style="font-family:Courier New,Courier,monospace;font-size:Larger;font-weight:bold; 높이: 152px; 너비: 421px; "></textarea>

페이지 내의 양식은 다음과 같습니다.

내 스크립트에는 다음과 같은 필수 양식과 입력 필드가 포함되어 있습니다.

으아아아

결과

으아아아

이 게시물입니다

으아아아

웹사이트에서 추적하면 헤더가 나오는데 "페이로드"라는 탭이 또 있습니다. 여기에는 위에 나열된 대부분의 필드가 포함됩니다. POST에 필드를 입력하려고 했지만 이 작업을 다르게 수행해야 하는지 아니면 자바스크립트이기 때문에 중요하지 않은지 잘 모르겠습니다.

이거 정말 많은 정보인거 알아요. 나는 Perl의 기계화가 이 정보를 추출할 수 있는지조차 확신하지 못합니다. 어떤 도움이라도 대단히 감사하겠습니다. 여기에 게시했으면 하는 다른 데이터가 있으면 알려주시기 바랍니다.

P粉564192131
P粉564192131

모든 응답(1)
P粉714890053

Mech의 내장 기능을 사용하여 이 작업을 수행할 수 있습니다. 추가 필드나 헤더를 제출할 필요가 없습니다.

으아아아

다음이 출력됩니다:

으아아아

여기서 핵심은 기본 양식의 기본 제출 버튼을 클릭하여 값도 제출되는 것처럼 가장하는 $mech- >submit 因为这不会提交提交按钮的值。这有点烦人。因此,您必须使用 $mech->click을 사용할 수 없다는 것입니다. 이것이 양식에서 버튼이 작동하는 방식입니다. 이 경우 백엔드는 어떤 값이 클릭되었는지 확인하기 위해 값을 확인합니다.

그런 다음 $mech->value$mech->value 获取字段值。您可能想要 split를 사용하여 필드 값을 가져올 수 있습니다. 추가 처리를 위해 분할할 수도 있습니다.

이 페이지의 JavaScript는 실제로 기능과 전혀 관련이 없습니다. 이 기능이 하는 일은 쿠키에서 선택한 설정을 저장하고 복원하여 다시 돌아올 때 동일한 확인란이 선택되도록 하는 것입니다. 괜찮지만 지금은 프런트엔드에서 로컬 저장소를 사용하는 것이 더 나을 수도 있습니다. 그러나 이 페이지를 스크랩하기 위해 JS를 전혀 다룰 필요는 없습니다. 주요 기능은 백엔드입니다.


필드와 값이 포함된 모든 양식을 인쇄하는 훌륭한 디버깅 도구인 $mech->dump_forms에 관심이 있으실 수도 있습니다. Mech(또는 모든 LWP 기반 클래스)를 사용할 때 유용한 또 다른 디버깅 도구는 LWP::ConsoleLogger::Everywhere입니다. 이것은 누락된 버튼 양식 필드를 찾기 위해 프로그램의 요청과 브라우저의 요청을 비교하는 데 사용하는 것입니다.

면책 조항: 저는 WWW::Mechanize의 관리자이며 LWP::ConsoleLogger::Everywhere를 작성했습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿