Html Agility Pack ನೊಂದಿಗೆ ಪಾರ್ಸ್ ಮಾಡುವ ಮೊದಲು ಪ್ರಾಕ್ಸಿ ಮೂಲಕ HTML ತನ್ನಿ
ಪ್ರಾಕ್ಸಿ-ಸಂರಚಿತ HttpClient ಅನ್ನು Html Agility Pack ನೊಂದಿಗೆ ಸೇರಿಸಿ ಮತ್ತು ನೆಟ್ವರ್ಕ್ ದೋಷಗಳನ್ನು HTML ಪಾರ್ಸಿಂಗ್ನಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿ ಇರಿಸಿ.
using var handler = new HttpClientHandler
{
UseProxy = true,
Proxy = new WebProxy("http://proxy.example:8080")
};
using var client = new HttpClient(handler);
string html = await client.GetStringAsync(
"https://www.example.com/catalog");
var document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(html);ಈ ಆಧುನಿಕ .NET ತುಣುಕು System.Net ಮತ್ತು System.Net.Http ಬಳಸುತ್ತದೆ. ಸಂರಚಿತ ಕ್ಲೈಂಟ್ ನೆಟ್ವರ್ಕ್ ರೂಟಿಂಗ್ ನಿರ್ವಹಿಸುತ್ತದೆ, ಮತ್ತು Html Agility Pack ಹಿಂತಿರುಗಿಸಿದ HTML ಸ್ಟ್ರಿಂಗ್ ಪಡೆಯುತ್ತದೆ. ಪ್ರತಿ ಪುಟಕ್ಕೂ ಅದರ ಪೂಲ್ಗಳನ್ನು ಮರುನಿರ್ಮಿಸುವ ಬದಲು ನಿರಂತರ ಕೆಲಸಕ್ಕಾಗಿ ಸೂಕ್ತವಾಗಿ ಸಂರಚಿತ ಕ್ಲೈಂಟ್ ಇರಿಸಿಕೊಳ್ಳಿ.
ಈ ಸಾರ್ವಜನಿಕ ಪುಟದ ಉದಾಹರಣೆಗೆ, HTTP ಪ್ರಾಕ್ಸಿ ಪಟ್ಟಿಯಿಂದ ದೃಢೀಕರಿಸದ ಅಭ್ಯರ್ಥಿ ಮಧ್ಯವರ್ತಿಯನ್ನು ಬದಲಾಯಿಸಬಹುದು. ಗಮ್ಯಸ್ಥಾನವನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಬದಲಾಯಿಸಿ. ವೆಬ್ಸೈಟ್ URL ತನ್ನ TLS ಗುರುತನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತದೆ. ದೃಢೀಕೃತ ಪ್ರಾಕ್ಸಿ ರುಜುವಾತುಗಳು WebProxy ಗೆ ಸೇರಿರುತ್ತವೆ; ವೆಬ್ಸೈಟ್ ರುಜುವಾತುಗಳಾಗಲೀ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ ಪರಿಶೀಲನೆಯಾಗಲೀ ಅವುಗಳನ್ನು ಬದಲಾಯಿಸುವುದಿಲ್ಲ.
GetStringAsync ಯಶಸ್ವಿಯಲ್ಲದ HTTP ಸ್ಥಿತಿಗಳನ್ನು ದೋಷಗಳೆಂದು ಪರಿಗಣಿಸುತ್ತದೆ. ವಿಫಲವಾದ ಡೌನ್ಲೋಡ್ ಅನ್ನು ಖಾಲಿ HtmlDocument ಆಗಿ ಪರಿವರ್ತಿಸಬೇಡಿ. ಅಪ್ಲಿಕೇಶನ್ಗೆ ಶೀರ್ಷಿಕೆಗಳು, ಸ್ಥಿತಿಯ ವಿವರಗಳು ಅಥವಾ ದೋಷದ ಬಾಡಿ ಬೇಕಿದ್ದರೆ, ಪ್ರತಿಕ್ರಿಯೆ-ಕೇಂದ್ರಿತ HTTP ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಬಳಸಿ ಮತ್ತು ಪಾರ್ಸ್ ಮಾಡುವ ಮೊದಲು ಅದನ್ನು ಪರಿಶೀಲಿಸಿ.
ಸ್ಟ್ರಿಂಗ್ ವಿಧಾನವು ಕಚ್ಚಾ ಬೈಟ್ಗಳ ಷರತ್ತಿಲ್ಲದ ಹೆಚ್ಚುವರಿ UTF-8 ಪರಿವರ್ತನೆಯನ್ನು ತಪ್ಪಿಸುತ್ತದೆ. ನೀವು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಬೈಟ್ಗಳನ್ನು ತಂದರೆ, ಪ್ರತಿಕ್ರಿಯೆ ಮತ್ತು ದಾಖಲೆಯ ಎನ್ಕೋಡಿಂಗ್ ಅಗತ್ಯಗಳನ್ನು ಡಿಕೋಡಿಂಗ್ಗೆ ಒಯ್ಯಿರಿ.
LoadHtml ಪಾರ್ಸ್ ಮಾಡಿದ ದಾಖಲೆಯನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ; ಅದು ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಚಲಾಯಿಸುವುದಿಲ್ಲ, ಶೈಲಿಗಳನ್ನು ಲೋಡ್ ಮಾಡುವುದಿಲ್ಲ ಅಥವಾ ಲಿಂಕ್ಗಳನ್ನು ಅನುಸರಿಸುವುದಿಲ್ಲ. ನಂತರದ ಸಾಪೇಕ್ಷ ಲಿಂಕ್ಗಳನ್ನು ಪ್ರತಿಕ್ರಿಯೆಯ ಸ್ಥಳಕ್ಕೆ ಸಂಬಂಧಿಸಿ ಪರಿಹರಿಸಿ, ಮತ್ತು ಬ್ರೌಸರ್ ರೆಂಡರ್ ಮಾಡುವ ಅಂಶಗಳು ಡೌನ್ಲೋಡ್ ಮಾಡಿದ ಮೂಲದಲ್ಲಿ ಇಲ್ಲದಿರಬಹುದು ಎಂದು ನೆನಪಿಡಿ. ವಿನಂತಿಗಳು ಒಂದೇ ಸಂರಚಿತ HTTP ಕ್ಲೈಂಟ್ ಹಂಚಿಕೊಂಡರೂ ಪ್ರತಿ ಪ್ರತಿಕ್ರಿಯೆಯು ತನ್ನದೇ ದಾಖಲೆಯನ್ನು ಉತ್ಪಾದಿಸಬೇಕು.