Asp.net HttpWebRequest не могу исходный код
Я хочу HTML исходный код с asp.net HttpWebRequest, но есть проблема.
Я могу заполучить это. Нет проблем, что: https://www.nesine.com/iddaa/default.aspx
Но я не понимаю: http://www.iddaa.com/program/futbol.html
На мой взгляд проблема URL-маршрутизации.
Я использую код
public static string GetSourceCode(string url)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
StreamReader sRead = new StreamReader(resp.GetResponseStream(), Encoding.UTF8);
return sRead.ReadToEnd();
}
Помоги мне, пожалуйста. Благодарю.
1 ответ
http://www.iddaa.com/program/futbol.html
url интенсивно использует JavaScript и AJAX для загрузки своего динамического содержимого. Это приложение SPA. HttpWebRequest
класс в.NET не выполняет никакой JavaScript. Это просто загрузка содержимого, возвращенного сервером в указанном месте.
Изучив сетевой трафик, вы заметите, что интересующая вас информация находится по следующему адресу: http://www.iddaa.com/program/data?sportId=1&date=&sortType=&marketType=1
Таким образом, вы можете пойти дальше и очистить этот URL:
using System;
using System.IO;
using System.Net;
static class Program
{
static void Main()
{
var request = WebRequest.Create("http://www.iddaa.com/program/data?sportId=1&date=&sortType=&marketType=1");
using (var response = request.GetResponse())
using (var stream = response.GetResponseStream())
using (var reader = new StreamReader(stream))
{
string responseHtml = reader.ReadToEnd();
Console.WriteLine(responseHtml);
}
}
}
Очевидно, что, как всегда в случае соскоба, если веб-сайт изменит расположение этого динамического URL, ваше приложение перестанет работать. Вот почему лучше использовать API, если он есть на веб-сайте. Свяжитесь с авторами сайта для получения дополнительной информации.