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

maxubayter

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

Nick

Client
Регистрация
22.07.2014
Сообщения
1 983
Благодарностей
817
Баллы
113
Можно не пользоваться браузером вообще, например.
Адрес ставишь в get-запрос, получаешь всю страницу в переменную, сканируешь содержимое на предмет наличия с помощью regex и добавляешь в новый список.
А ещё можно сделать N потоков и в N раз быстрее всё это провернуть.
 
  • Спасибо
Реакции: maxubayter

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
Примерно так:
 

Вложения

  • 21,9 КБ Просмотры: 56

maxubayter

Новичок
Регистрация
28.08.2015
Сообщения
4
Благодарностей
0
Баллы
1
Спасибо огромное за помощь. Но моя задача теперь развивается дальше)) Что если на страницах работает javascript, когда он в браузере включен, то я вижу список всех строк, а когда отключен, то нужные строки для моего поиска могут прятаться за кнопочкой "Показать еще". Есть возможность обойтись без браузера?
Кстати, не пинайте сильно новичка, но запустить экшн с С# кодом, не получилось. Немного подправил и в результате получаю ошибку: Компиляция кода Ошибка в действии "CS1009" "Unrecognized escape sequence".
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113

Nick

Client
Регистрация
22.07.2014
Сообщения
1 983
Благодарностей
817
Баллы
113
Спасибо огромное за помощь. Но моя задача теперь развивается дальше)) Что если на страницах работает javascript, когда он в браузере включен, то я вижу список всех строк, а когда отключен, то нужные строки для моего поиска могут прятаться за кнопочкой "Показать еще". Есть возможность обойтись без браузера?
Кстати, не пинайте сильно новичка, но запустить экшн с С# кодом, не получилось. Немного подправил и в результате получаю ошибку: Компиляция кода Ошибка в действии "CS1009" "Unrecognized escape sequence".
Ну, ты можешь с помощью Fiddler 4 просмотреть, как работает с этим javascript браузер и его запрос продублировать get-ом, а полученные данные вручную разобрать. Это уже не так элементарно, но тоже возможно. Я бы не заморачивался и парсил браузером, если объём не гигантский
 
  • Спасибо
Реакции: maxubayter

maxubayter

Новичок
Регистрация
28.08.2015
Сообщения
4
Благодарностей
0
Баллы
1
Спасибо вам за наводки, но попытавшись самому покопаться, понял что я в этом совершенно далек. Сразу скажу что объем парсинга большой, миллионы строк. Вид ссылки: http://games.mail.ru/profile/mail/kudanov.95/games. Нужно парсить все имеющиеся игры и проведенное время в игре. Сам вот наткнулся в Fiddler на что то более-мение похожее на правду, но если это и так, то не знаю как этим воспользоваться. Думиал что в результате этого запроса выдирать регулярные выражения, но эт мои мысли, я в этом не шарю(


Помогите кто чем может пожалуйста.
 

Nick

Client
Регистрация
22.07.2014
Сообщения
1 983
Благодарностей
817
Баллы
113
Очень неконкретно ты спрашиваешь... Обучать тебя персонально могла бы мать Тереза, но она уже умерла. Единственное, чем тебе могут помочь, это посоветовать сходить на сайт производителя и почитать документацию по программе. Ещё можно в Ютубе посмотреть ролики с примерами использования. Ещё посмотри в конкурсах статей (есть такой раздел на этом форуме), там в одной из статей рассказывается вкратце, как использовать Фиддлер для анализа. Я часто гуглю форум, делая запрос в гугле вида: site:zennolab.com fiddler
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
Не согласен с предыдущим комментарием!
Тут всё просто.
Делаете GET запрос к http://games.mail.ru/profile/ajax/get/games/[email protected] (вместо мыла подставите свою переменную). Далее обработка текста регулярками.
Регулярка для названия игры
Код:
(?<=title\\">).*?(?=<)
Регулярка для времени в игре, вроде подходит
Код:
(?<=\s{26}).*?(?=\\)
Не стал составлять логику, чтоб сохранять название и проведенное время конкретно этой игры. Надеюсь, разберетесь, через счетчик или еще как. Хотя, думаю, может вам и не надо собирать, те игры, где не было проведенного в ней времени.
 
  • Спасибо
Реакции: Nick и NoN

Nick

Client
Регистрация
22.07.2014
Сообщения
1 983
Благодарностей
817
Баллы
113
  • Спасибо
Реакции: Dimionix

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
Полезть на сайт, отсниффать, составить регулярку, всё объяснить... Ты святой! :bt::D
Отснифать с помощью дополнение для Firefox HttpFox - дело пары секунд. Ну а уж написать-то... мне не жалко, когда время есть)))
 
  • Спасибо
Реакции: romario и maxubayter

maxubayter

Новичок
Регистрация
28.08.2015
Сообщения
4
Благодарностей
0
Баллы
1
Огромное спасибо! Всего то мне нужно было правильный GET запрос. А с логикой проблем не будет) Еще раз спасибо!!!
 

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