Быстрый парсинг

  • Автор темы Автор темы maxubayter
  • Дата начала Дата начала

maxubayter

Новичок
Регистрация
28.08.2015
Сообщения
4
Реакции
0
Баллы
1
Здравствуйте! Вот решил попробовать софт под свои задачи. Вроде бы сделал то что хотел, но вот посещает мысль что что то не правильно из-за нехватки знаний. Хочу поинтересоваться у специалистов.
Имеется список ссылок, нужно каждую проверить на содержание определенной строки (или регулярного выражения не знаю что лучше) и в результат записать те ссылки которые содержат нужную строку.
Интересует как можно добиться максимальной скорости работы. (отключение картинок, плагинов и тд. не предлагать).
 
Можно не пользоваться браузером вообще, например.
Адрес ставишь в get-запрос, получаешь всю страницу в переменную, сканируешь содержимое на предмет наличия с помощью regex и добавляешь в новый список.
А ещё можно сделать N потоков и в N раз быстрее всё это провернуть.
 
  • Оценить
Реакции: maxubayter
Примерно так:
 

Вложения

  • Pars.rar
    Pars.rar
    21,9 KB · Просмотры: 56
Спасибо огромное за помощь. Но моя задача теперь развивается дальше)) Что если на страницах работает javascript, когда он в браузере включен, то я вижу список всех строк, а когда отключен, то нужные строки для моего поиска могут прятаться за кнопочкой "Показать еще". Есть возможность обойтись без браузера?
Кстати, не пинайте сильно новичка, но запустить экшн с С# кодом, не получилось. Немного подправил и в результате получаю ошибку: Компиляция кода Ошибка в действии "CS1009" "Unrecognized escape sequence".
 
Компиляция кода Ошибка в действии "CS1009" "Unrecognized escape sequence".
Подправьте регулярное выражение!
https://msdn.microsoft.com/ru-ru/library/44ezxxy3.aspx
А если вы ищите совпадения просто со словом "Diablo", то в Regex так и пропишите
Код:
Развернуть Свернуть Копировать
Regex reg = new Regex("Diablo");
 
Спасибо огромное за помощь. Но моя задача теперь развивается дальше)) Что если на страницах работает javascript, когда он в браузере включен, то я вижу список всех строк, а когда отключен, то нужные строки для моего поиска могут прятаться за кнопочкой "Показать еще". Есть возможность обойтись без браузера?
Кстати, не пинайте сильно новичка, но запустить экшн с С# кодом, не получилось. Немного подправил и в результате получаю ошибку: Компиляция кода Ошибка в действии "CS1009" "Unrecognized escape sequence".
Ну, ты можешь с помощью Fiddler 4 просмотреть, как работает с этим javascript браузер и его запрос продублировать get-ом, а полученные данные вручную разобрать. Это уже не так элементарно, но тоже возможно. Я бы не заморачивался и парсил браузером, если объём не гигантский
 
  • Оценить
Реакции: maxubayter
Спасибо вам за наводки, но попытавшись самому покопаться, понял что я в этом совершенно далек. Сразу скажу что объем парсинга большой, миллионы строк. Вид ссылки: http://games.mail.ru/profile/mail/kudanov.95/games. Нужно парсить все имеющиеся игры и проведенное время в игре. Сам вот наткнулся в Fiddler на что то более-мение похожее на правду, но если это и так, то не знаю как этим воспользоваться. Думиал что в результате этого запроса выдирать регулярные выражения, но эт мои мысли, я в этом не шарю(


Помогите кто чем может пожалуйста.
 
Очень неконкретно ты спрашиваешь... Обучать тебя персонально могла бы мать Тереза, но она уже умерла. Единственное, чем тебе могут помочь, это посоветовать сходить на сайт производителя и почитать документацию по программе. Ещё можно в Ютубе посмотреть ролики с примерами использования. Ещё посмотри в конкурсах статей (есть такой раздел на этом форуме), там в одной из статей рассказывается вкратце, как использовать Фиддлер для анализа. Я часто гуглю форум, делая запрос в гугле вида: site:zennolab.com fiddler
 
Не согласен с предыдущим комментарием!
Тут всё просто.
Делаете GET запрос к http://games.mail.ru/profile/ajax/get/games/?email=kudanov.95@mail.ru (вместо мыла подставите свою переменную). Далее обработка текста регулярками.
Регулярка для названия игры
Код:
Развернуть Свернуть Копировать
(?<=title\\">).*?(?=<)
Регулярка для времени в игре, вроде подходит
Код:
Развернуть Свернуть Копировать
(?<=\s{26}).*?(?=\\)
Не стал составлять логику, чтоб сохранять название и проведенное время конкретно этой игры. Надеюсь, разберетесь, через счетчик или еще как. Хотя, думаю, может вам и не надо собирать, те игры, где не было проведенного в ней времени.
 
  • Оценить
Реакции: Nick и NoN
Полезть на сайт, отсниффать, составить регулярку, всё объяснить... Ты святой! :bt::D
Отснифать с помощью дополнение для Firefox HttpFox - дело пары секунд. Ну а уж написать-то... мне не жалко, когда время есть)))
 
  • Оценить
Реакции: romario и maxubayter
Огромное спасибо! Всего то мне нужно было правильный GET запрос. А с логикой проблем не будет) Еще раз спасибо!!!
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)