PDA

Просмотр полной версии : Небольшой парсер страницы VK.COM


CardQ
15.01.2010, 00:00
Вот нечего было делать, и написал я небольшой парсер страницы контакта.

using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Policy;
using System.Net;
using System.Text.RegularExpressions;

namespace VkontakteLibrary
{
public static class Vkontakte
{
private static string CreateQueryString(Url url,string email, string pass)
{
StringBuilder queryString = new StringBuilder();
queryString.Append(url.Value);
queryString.Append(@"?email=");
queryString.Append(email);
queryString.Append(@"&pass=");
queryString.Append(pass);
return queryString.ToString();
}

public static bool Create(string email, string pass)
{
string regexPattern = @"<div id='message' style='margin: 0'>Чтобы просматривать эту страницу, нужно зайти на сайт.</div>";
string queryString=CreateQueryString(new Url(@"http://www.vkontakte.ru/login.php"),email,pass);
WebClient webClient = new WebClient();
string result=webClient.DownloadString(queryString);
return Regex.Match(result, regexPattern,RegexOptions.Compiled|RegexOptions.Ig noreCase).Success;
}
}
}



В общем что делает код:
Логинится на сайт vkontakte.ru через POST запрос используя login.php?email=&pass= (в эти поля вводятся данные например с текстбоксов, файла, etc...).После чего начинает парсить ответ сервера, если на странице написано "Чтобы просматривать эту страницу, нужно зайти на сайт." значит валид, если любая другая надпись значит не валид.Создаём файл например Vkontakte.cs и пихаем в свой проект, дальше вызываем его в коде таким образом:

if (Vkontakte.Create(textBox1.Text, textBox2.Text))
{
MessageBox.Show("ВалидЭ!!11");
}
else
{
MessageBox.Show("УГ!!11НЕВАЛИД!!1э");
}


Там где textBox1.Text идёт email, textBox2.Text - пасс.
Лично я его использовал для программного фейка с внутренней авторизацией, вы его можете переписать под чекер, фейк, etc.
Всем спасибо за внимание.

GlooK
15.01.2010, 00:12
Лично мне, pascal-кодеру, непонятен язык на чем софт написан.
Мейби укажешь?

CardQ
15.01.2010, 00:13
C#

flacs
15.01.2010, 00:16
C# (Microsoft Visual Studio 2007-2009)

CardQ
15.01.2010, 00:29
Также написал оптимизированную библиотеку для акапчи, шлёт все капчи жрёт мало ресурсов, смаково всё.Мб выложу...Тоже на C#.

scrat
15.01.2010, 00:49
Создать объект webClient и вызвать из него пару методов любой дурак может. Что тут такого особого?

К тому-же ты как-то очень глупо юзаешь Regex'ы, хотя можно обойтись обращениями к DOM-элементам.

CardQ
15.01.2010, 01:02
Создать объект webClient и вызвать из него пару методов любой дурак может. Что тут такого особого?

К тому-же ты как-то очень глупо юзаешь Regex'ы, хотя можно обойтись обращениями к DOM-элементам.
По этому и небольшой=)

scrat
15.01.2010, 01:08
По этому и небольшой=)
раз (http://forum.antichat.ru/thread107524.html)
два (http://forum.antichat.ru/thread148383.html)

W!z@rD
15.01.2010, 07:35
вот если бы добавил APM.
регулярки не правильно юзаешь, смысла в паттерне не вижу. Достаточно было обойтись методом Exists.

CardQ
15.01.2010, 14:38
вот если бы добавил APM.
регулярки не правильно юзаешь, смысла в паттерне не вижу. Достаточно было обойтись методом Exists.
спс исправлю