Источник проблемы в том, что Paragraph загружается через AJAX, JS скриптом после загрузки страницы. Если вы откроете Dev Tools / Network в браузере, вы увидите это.
Загруженная часть страницы выглядит так
<table class="paragraphResult">
<tr>
<td>
<span id="result"></span>
</td>
</tr>
</table>
Внутри ничего нет.
И после load, страница отправляет запрос AJAX POST на тот же URL-адрес и получает простую строку с параметрами
Subject1: "",
Subject2: ""
И как это выглядит в формате URL-Encoded
Subject1=&Subject2=
To выполнить эмуляцию поведения формы, вы можете отправить запрос POST вручную. HtmlAgilityPack
здесь бесполезен, потому что полученные данные представляют собой простую строку.
class Program
{
private static readonly HttpClient client = new HttpClient();
static async Task Main(string[] args)
{
Console.Write("Proper Noun 1: ");
string subject1 = Console.ReadLine();
Console.Write("Proper Noun 2: ");
string subject2 = Console.ReadLine();
Dictionary<string, string> parameters = new Dictionary<string, string>()
{
{ "Subject1", subject1 },
{ "Subject2", subject2 }
};
try
{
string result = await PostHTTPRequestAsync("http://watchout4snakes.com/wo4snakes/Random/RandomParagraph", parameters);
Console.WriteLine(result);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
private static async Task<string> PostHTTPRequestAsync(string url, Dictionary<string, string> data)
{
using (HttpContent formContent = new FormUrlEncodedContent(data))
using (HttpResponseMessage response = await client.PostAsync(url, formContent).ConfigureAwait(false))
{
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync().ConfigureAwait(false);
}
}
}
Вывод в консоль
Proper Noun 1: test
Proper Noun 2: StackOverflow
When will the bass garage StackOverflow? A digest sighs test below the objective card. Why won't test finish behind a girlfriend? A heating science approaches test.
Работает хорошо. Все, что вам нужно для этого, - это правильно анализировать HTTP-трафик c в браузере. Также HttpClient
- мощный инструмент для взаимодействия с Интернетом.