Парсер love.mail.ru (htmlagilitypack) - C#
Формулировка задачи:
Всем добрый день.
Есть проект парсинга love.mail.ru (http://love.mail.ru/search.phtml?ia=...0_0_0_0&form=1)
Пришел в тупик.
Задача :
Спарсить ID людей .(Используюя
htmlagilitypack
) Кто-то скажет: Можно регулярками - НЕТ, учусь htmlagilitypack Проблема: Начинаю парсить и парсится нормально,но с мусором (да да ,я криво составляю запрос и у меня парсит ID не с ссылки,а со скрипта. ) Опять же - мусор можно убрать,но как спарсить ссылку? Картинка Всем спасибо кто пытается помочь. _exp10der_ если ты читаешь это,то спасибо что помогаешь новичкамusing HtmlAgilityPack;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using xNet.Net;
namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
CookieDictionary cookie = new CookieDictionary();
HttpRequest request = new HttpRequest();
public Form1()
{
InitializeComponent();
request.Cookies = cookie;
}
private void button1_Click(object sender, EventArgs e)
{
RTB.Clear();
Go_Pars();
}
public void Go_Pars() {
string zapros = @"http://love.mail.ru/search.phtml?ia=F&lf=N&af=18&at=80&t=a&s_c=0_0_0_0&form=1";
string content = "";
request.UserAgent = HttpHelper.IEUserAgent();
// Отправляем запрос.
request.Referer = HttpHelper.UrlEncode(zapros);
HttpResponse response = request.Get(zapros);
// Принимаем тело сообщения в виде строки.
content = response.ToString();
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
HtmlNodeCollection nodes;
doc.LoadHtml(content);
//Парсим страницу на блоки со ссылками
// nodes = doc.DocumentNode.SelectNodes("//div[@class='serp-list']//span[@class='serp-url__item']//a[1]");
// href
// nodes = doc.DocumentNode.SelectSingleNode("//a").GetAttributeValue("href", "");
nodes = doc.DocumentNode
.SelectNodes("//*[@class='tiles-list js-search-results-container']"); //.Attributes["href"];
int count = 0;
int pos = 0;
if (nodes == null)
return;
foreach (HtmlNode node in nodes)
{
count++;
RTB.AppendText(count + ". " + node.InnerText + "\n");
pos += node.InnerText.Length + 1 + (Convert.ToString(count) + ". ").Length;
}
}
}
}Решение задачи: «Парсер love.mail.ru (htmlagilitypack)»
textual
Листинг программы
HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(html);