>

노드에 스크레이퍼를 만들고 있는데, 나는 그만 두었습니다. 이 주소로 이동합니다 : https://ariisp1.oklahomacounty.org/AssessorWP5/DefaultSearch.asp 를 입력하고 두 번째 텍스트 상자에 주소를 넣고 후속 '제출'버튼을 클릭하는 것을 시뮬레이션하고 싶습니다. 텍스트 상자와 다음 버튼을 성공적으로 찾을 수 있지만 '클릭'기능을 시뮬레이션하고 URL을 검색하는 방법을 알 수 없습니다. 이동하는 URL은 입력 한 주소에 따라 결정되므로 버튼과 관련된 href는 없습니다. 어떤 아이디어가 있습니까?

var request = require('request');
var cheerio = require('cheerio');

request.post('https://ariisp1.oklahomacounty.org/AssessorWP5/DefaultSearch.asp', /*{
  form: {
    FormattedLocation: '2333 Nw 32 St'
    //btnSubmit: 'Submit'
  }
}, */
function (err, res, body) {
    let $ = cheerio.load(body);

    $("input[name=FormattedLocation]").text('2331 nw 32 st');
    var x = $("input[name=FormattedLocation]").text();
    var y = $("input[name=FormattedLocation]").next().attr('type');
    console.log(y);//successfully gets the 'Submit' button
    //code to click button and get the page it goes to goes here
})

  • 답변 # 1

    cheerio 버튼을 클릭 할 필요가 없습니다. POST 요청을 한 다음 결과를 파싱하십시오. 결과로 무엇을하려고하는지 명확하지 않으며 샘플 코드는 이미 기본적으로 그렇게하고 있습니다. 어려운 부분은 당신이 얻는 양식 응답이 HTML의 혼란이며, 당신이 그것을 추출하려고하는 것을 우리에게 말하지 않았다는 것입니다.

    request.post('https://ariisp1.oklahomacounty.org/AssessorWP5/AddressSearch.asp', { form: { FormattedLocation: '2333 Nw 32 St' }}, (err, res, body) => console.log(body));
    
    

    이를 실행하면 요청이 발생하고 해당 제출 버튼을 클릭 한 것처럼 HTML이 다시 표시됩니다. 거기에서 cheerio로하는 일은 응답 HTML에서 추출하려는 것입니다.

관련 자료

  • 이전 java - buffWrite 또는 FileWriter를 사용하여 XML 파일을 여러 파일로 분할
  • 다음 tfs 2018 업데이트 2 업그레이드 - reporting services