我正在尝试访问此

问题描述 投票:0回答:1
我尝试在URL中添加页码,但根本不会转到下一页。任何解决此问题的指导都非常感谢。

您需要使用表单数据和cookie提出

POST
请求。像这样的事情应该有效:

function* getNextPage(url) { let response = UrlFetchApp.fetch(url); let cookie = response.getAllHeaders()['Set-Cookie'].map( c => c.split(';')[0]).join(';'); let html = response.getContentText(); yield html; while (html.includes('pgCtrlDetailedSearch$nextLB')) { let inputs = Array.from(html.matchAll(/id="(\S+)" value="(\S+)"/g), a => a.slice(1)); let data = { '__EVENTTARGET': 'pgCtrlDetailedSearch$nextLB', '__EVENTARGUMENT': '', ...Object.fromEntries(inputs), } let options = { method: 'post', headers: {cookie}, payload: data, }; html = UrlFetchApp.fetch(url, options).getContentText(); yield html; } } function main() { const pageUrl = 'https://notices.philgeps.gov.ph/GEPSNONPILOT/Tender/SplashOpportunitiesSearchUI.aspx?menuIndex=3&BusCatID=53&type=category&ClickFrom=OpenOpp' let paginator = getNextPage(pageUrl); let baseUrl = 'https://notices.philgeps.gov.ph/GEPSNONPILOT/Tender'; for (let page of paginator) { let matches = page.matchAll(/id="dgSearchResult_\w+" href="([^"]+)"/g); let links = Array.from(matches, arr => `${baseUrl}/${arr[1].replaceAll('&', '&')}`) console.log(links) } }

google-sheets google-apps-script web-scraping pagination
1个回答
0
投票
注:

getNextPage

伴侣函数。 (一次产生一页)

    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.