plan-view.html 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Data Extraction Example</title>
  7. </head>
  8. <body>
  9. <label for="plan_data">Enter URL:</label>
  10. <input type="text" id="plan_data" placeholder="Enter URL">
  11. <button onclick="fetchAndExtractData()">Fetch and Extract Data</button>
  12. <textarea id="result" rows="10" cols="50" readonly></textarea>
  13. <script>
  14. function fetchAndExtractData() {
  15. var urlInput = document.getElementById('plan_data');
  16. var resultTextarea = document.getElementById('result');
  17. // Get the value from the input field
  18. var url = urlInput.value;
  19. // Use the server-side proxy
  20. var proxyUrl = 'proxy.php?url=' + encodeURIComponent(url);
  21. // Fetch data from the proxy URL
  22. fetch(proxyUrl)
  23. .then(response => response.text())
  24. .then(data => {
  25. // Create a temporary element to parse the HTML
  26. var tempElement = document.createElement('div');
  27. tempElement.innerHTML = data;
  28. // Extract data for each field
  29. var fields = ['pid', 'locality', 'Planning\\ Zones', 'Total\\ Area', 'title', 'municipality', 'Planning\\ Codes', 'Planning\\ Scheme'];
  30. var extractedData = {};
  31. fields.forEach(fieldName => {
  32. // Escape spaces in field names
  33. var escapedFieldName = fieldName.replace(/\s+/g, ' ');
  34. // Escape spaces in field names and convert to lowercase
  35. var sanitizedFieldName = fieldName.replace(/\s+/g, '_').toLowerCase().replace(/\\/g, '');
  36. var fieldElement = tempElement.querySelector('#' + escapedFieldName);
  37. // Get the text content or any other property you want
  38. var fieldValue = fieldElement ? fieldElement.textContent : 'Not found';
  39. // Store the extracted data in the object
  40. extractedData[sanitizedFieldName] = fieldValue;
  41. });
  42. // Display the result in the textarea
  43. resultTextarea.value = JSON.stringify(extractedData, null, 2);
  44. // Clean up the temporary element
  45. tempElement.remove();
  46. })
  47. .catch(error => {
  48. // Handle errors
  49. resultTextarea.value = 'Error fetching data: ' + error.message;
  50. });
  51. }
  52. </script>
  53. </body>
  54. </html>