Способы извлечения ссылки и публикации с веб-страницы с помощью htmlagilitypack в c #? - PullRequest
1 голос
/ 05 января 2012

Я разрабатываю веб-сайт, который очищает ведущие технологические сайты, такие как thenextweb.com, mashable.com, readwriteweb.com и т. Д.

Теперь одним из способов отказаться от использования Html Agility Pack является использование одного веб-сайта, позволяющего thenextweb.com и получить ссылки на статьи и контент в соответствии с <tags>, то есть, используя <div class ="article-listing"> ..... </div>, и получать ссылки через него.Точно так же алгоритм разработки для каждого сайта (так как теги различны для каждого сайта).

Вот что я использовал для получения ссылок с домашней страницы сайта thenextweb.com:

var webGet = new HtmlWeb(); 
var document = webGet.Load(url); 
var infos = from info in 
            document.DocumentNode.SelectNodes("//div[@class='article-listing']") 
               select new 
                { 
                Contr = info.InnerHtml 
                 }; 

lvLinks.DataSource = infos; 
lvLinks.DataBind();

Есть ли другой простой способ, с помощью которого я могу извлекать ссылки и контент (пост и его изображения, дата и т. Д.)?

Ответы [ 2 ]

1 голос
/ 07 января 2012

У меня есть способ извлечь ссылки, используя

больше предложений "from" в LINQ

я могу использовать

var infos = from info in document.DocumentNode.SelectNodes("//div[@class='article-listing']") 
               from link in info.SelectNodes("h4//a").Where(x => .Attributes.Contains("href"))

                select new 
                { 
                LinkURL = link.Attributes["href"].value
                 }; 

Таким образом, ссылки, изображения могут быть получены.

Спасибо ... Теперь не проблема

1 голос
/ 06 января 2012

Все эти сайты должны иметь RSS фиды, которые являются наилучшим способом получения данных.Например, в The Next Web есть следующие теги (вам не нужны теги, только URL):

<link rel="alternate" type="application/rss+xml" title="TNW Network All Stories RSS Feed" href="http://feeds2.feedburner.com/thenextweb" />
<link rel="alternate" type="application/rss+xml" title="TNW Network Top Stories RSS Feed" href="http://feeds2.feedburner.com/thenextwebtopstories" />   

http://feeds2.feedburner.com/thenextwebtopstories

Фиды должны быть в том же формате(или, по крайней мере, похожий формат), который гораздо легче понять, чем необработанный HTML, и вряд ли изменится.У вас не должно возникнуть проблем с поиском парсера .Net RSS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...