![]() |
Правка заливщика фото на facebook, или что общего с парсингомНекоторые работы, которыми мне приходится заниматься, выглядят очень разными, но на самом деле имеют много общего. Вот, например, парсинг товаров с интернет-магазина и заливка фото на фейсбук – казалось, бы, что общего? А на самом деле принцип один и тот же. Вот один из последних моих заказчиков озадачил меня работой: починить готовую программку на си шарп, которая авторизуется в нескольких популярных соцсетях и заливает сразу много фото (из выбранной папки) в альбомы. Что же здесь общего с парсингом? А вот что – все основано на запросах. Итак, начинаем препарировать программу. Работа начинается с подключения библиотеки xNet – не самое новое решение, но до сих пор отлично работающее, так как по сути дела за последние годы ничего нового в пост и гет запросах не изменилось. Те же параметры, те же куки, те же юзер агенты. Вернемся к нашей программе. Авторизоваться в фейсбуке проще всего с мобильной версией. Формируем запрос с куками, неким юзер-агентом и не забываем про кодировку: var request = new HttpRequest(); request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0"; request.CharacterSet = Encoding.GetEncoding(1251); request.Cookies = new CookieDictionary();Отправляем этот запрос к мобильной версии сайта и сразу же ответ переводим в строку: string get = request.Get("https://m.facebook.com/").ToString();Кстати, работать с мобильными версиями соцсетей гораздо проще, именно поэтому и используем такой адрес. Затем получаем три ключа: string li = SearchAndInput(get, "li\" value=\"", "\"")[0]; string lsd = SearchAndInput(get, "lsd\" value=\"", "\"")[0]; string m_ts = SearchAndInput(get, "m_ts\" value=\"", "\"")[0];Которые парсим особым методом SearchAndInput(). Также мы парсим и страничку, чтобы получить эти три ключа. Дальнейшая программа вся основана на использовании этого метода с отправкой пост и гет запросов. Исходники я приводить не буду – все же не моя разработка, да и жалко выкладывать в паблик. Ничего сложного там нет, но есть много моментов, которые сократят время разработчикам под фейсбук, если их знать. А почему же не работала отправка фото через приложение? Все просто, с помощью try catch находим строчку, которая выбрасывает ошибку, это оказывается строка: string revision = SearchAndInput(get, "\"revision\":", ",")[0];Здесь мы находим ключ revision. Почему же она выбрасывает исключение? Смотрим исходный код страницы и ищем там revision: ![]() Обратите внимание, что нет revision в кавычках, но есть server_revision. Меняем строку на такую: string revision = SearchAndInput(get, "\"server_revision\":", ",")[0];И ура, все работает! Фотографии заливаются пакетно, ошибок нет. ![]() Итак, если вам необходимо разработать или починить приложение для социальной сети, то вы всегда можете написать мне. Пожизненной гарантии на готовое приложение вам никто не даст – фейсбук нередко меняется. Но все доработки будут стоить уже горазд дешевле первоначальной программы. ![]() Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда. ![]() |
Мои услуги
|
© upread.ru 2013-2022 При перепечатке активная ссылка на сайт обязательна. |