55 lines
1.9 KiB
JavaScript
55 lines
1.9 KiB
JavaScript
|
|
import axios from 'axios';
|
||
|
|
import * as cheerio from 'cheerio';
|
||
|
|
|
||
|
|
// Test the eTendersNI site structure
|
||
|
|
const baseUrl = 'https://etendersni.gov.uk';
|
||
|
|
const homeUrl = 'https://etendersni.gov.uk/epps/home.do';
|
||
|
|
|
||
|
|
(async () => {
|
||
|
|
try {
|
||
|
|
console.log('Fetching homepage...');
|
||
|
|
const resp = await axios.get(homeUrl, { timeout: 10000, maxRedirects: 5 });
|
||
|
|
const $ = cheerio.load(resp.data);
|
||
|
|
|
||
|
|
console.log('\n=== EXTRACTING NAVIGATION LINKS ===');
|
||
|
|
const navLinks = new Set();
|
||
|
|
$('a').each((i, el) => {
|
||
|
|
const href = $(el).attr('href');
|
||
|
|
const text = $(el).text().trim();
|
||
|
|
if (href && (href.includes('search') || href.includes('list') || href.includes('notice') || href.includes('tender'))) {
|
||
|
|
// Make absolute URLs
|
||
|
|
const fullUrl = href.startsWith('http') ? href : baseUrl + (href.startsWith('/') ? href : '/epps/' + href);
|
||
|
|
navLinks.add(`${text.substring(0, 40)} => ${fullUrl}`);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
if (navLinks.size > 0) {
|
||
|
|
console.log('Found search/list links:');
|
||
|
|
navLinks.forEach(l => console.log(' ' + l));
|
||
|
|
} else {
|
||
|
|
console.log('No search/list links found. Checking page structure...');
|
||
|
|
console.log('Page title:', $('title').text());
|
||
|
|
console.log('Meta description:', $('meta[name="description"]').attr('content'));
|
||
|
|
|
||
|
|
// Try to find any forms
|
||
|
|
console.log('\nForms found:', $('form').length);
|
||
|
|
$('form').each((i, el) => {
|
||
|
|
const action = $(el).attr('action');
|
||
|
|
const method = $(el).attr('method');
|
||
|
|
console.log(` Form ${i}: ${method} ${action}`);
|
||
|
|
});
|
||
|
|
|
||
|
|
// Try to find main content areas
|
||
|
|
console.log('\nMain sections:');
|
||
|
|
$('[id*="search"], [class*="search"], [id*="tender"], [class*="tender"]').each((i, el) => {
|
||
|
|
const id = $(el).attr('id');
|
||
|
|
const cls = $(el).attr('class');
|
||
|
|
if (id || cls) console.log(` ${id} ${cls}`);
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
} catch (e) {
|
||
|
|
console.error('Error:', e.message);
|
||
|
|
}
|
||
|
|
})();
|