C# - ошибка при попытке использовать CsQuery для перебора упорядоченного списка с веб-страницы

Таким образом, я первоначально отправил пару дней назад с просьбой о помощи в разработке проекта, который загрузил веб-страницу и отфильтровал желаемое содержимое из упорядоченного тега списка.

Пользователь был очень полезен, предоставив мне метод использования Jsoup, как показано ниже.

public static String pharmercyURL = "http://archiveofourown.org/tags/Fareeha%20%22Pharah%22%20Amari*s*Angela%20%22Mercy%22%20Ziegler/works";

Document doc = Jsoup.connect(pharmercyURL).get();
Elements ol = doc.select("ol.work > li");

for (Element li : ol) {
    String title = li.select("h4.heading a").first().text();
    String author = li.select("h4.heading a[rel=author]").text();
    String id = li.attr("id").replaceAll("work_","");
    String url = "http://archiveofourown.com/works/" + id;
    String summary = li.select("blockquote.summary").text();
    String rating = li.select("span.rating").text();

    System.out.println("Title: " + title);
    System.out.println("Author: " + author);
    System.out.println("ID: " + id);
    System.out.println("URL: " + url);
    System.out.println("Summary: " + summary);
    System.out.println("Rating: " + rating);
}

Хотя он фантастически работает на моем домашнем компьютере, я также хотел реализовать его на своем сервере разногласий, остальная часть которого мой бот написан на C#.

К счастью, оказывается, что Csquery имеет тот же общий способ работы, используя CSS-селекторы и так далее для фильтрации данных. Однако у меня возникают некоторые проблемы с преобразованием кода Java в надлежащий C#, в основном из-за того, что я использую отдельный набор библиотек, и я не совсем уверен в структуре, стоящей за CsQuery.

Ошибка:

Unable to cast object of type 'CsQuery.Implementation.HTMLLIElement' to type 'CsQuery.CQ'.

-

 String searchURL = "http://archiveofourown.org/works/search?utf8=✓&work_search%5Bquery%5D="; 

    searchURL += fandomParam + "+" + pairingParam + "+" + titleParam + "+" + authorParam + "+" + ratingParam + "+" + otherParam;

    CQ dom = CQ.CreateFromUrl(searchURL);
    CQ ol = dom.Select("ol.work > li");

    Console.WriteLine("sucessfully past CQ initialization");

    foreach(CQ li in ol){

        String title = li.Select("h4.heading a").First().Text();
        await ReplyAsync(title);
        break;
    }

0 ответов

Другие вопросы по тегам