Comments 19
У меня были подобные задания… Парсить сайт на asp, где пагинация сделана таким образом, что чтобы выбрать например 300-ую страницу, надо 300 раз щёлкать кнопку «Следующая страница» (на самом деле поменьше, но суть это отражает). Другим способом это никак сделать было нельзя.
0
Оказалось, что preg_match некорректно работает с очень большими скрытыми полями.
По приведенной вами же ссылке ясно сказано о количестве символов. Скрытые поля тут непричем, функция тупо работает с ХХХ символами текста.
Хорошо хоть не пришлось учить еще и css
Вообще-то я верстальщик
Верстальщик не знающий CSS?!
В целом статья неочем. Поток создания с кусами внеконтекстного кода.
+3
По приведенной вами же ссылке ясно сказано о количестве символов. Скрытые поля тут непричем, функция тупо работает с ХХХ символами текста.
Косяк. Исправлю. Спасибо.
Верстальщик не знающий CSS?!
Кхм… <irony>?
В целом статья неочем. Поток создания с кусами внеконтекстного кода.
Для меня все это собрать в цельный процесс и все-таки распарсить результат было маленьким открытием, сопровожденным копанием в англоязычных источниках, пробами, ошибками и прочими забавными приключениями.
0
Ирония? Ничуть. Поскольку топик на техническом ресурсе опубликован, оговорок о других отраслях нет (например, верстальщик типографии), то контекст задает, что это верстальщик переводящий PSD в статичный html+css. А верстальщик не знающий css — плохой верстальщик.
Касательно открытый… Это публичный ресурс коллективных блогов. Поэтому топик должен быть интересен хотя еще кому-то кроме автора и его родных. А котиков постить это все же в личный блог, вконтактик там.
Касательно открытый… Это публичный ресурс коллективных блогов. Поэтому топик должен быть интересен хотя еще кому-то кроме автора и его родных. А котиков постить это все же в личный блог, вконтактик там.
0
Убрала от греха момент об изучении css, раз уж он неоднозначен.
А неинтересен — искренне верю, что в ближайшие пару лет найду достаточно материала, чтобы собрать статью, интересную для Хабра.
А неинтересен — искренне верю, что в ближайшие пару лет найду достаточно материала, чтобы собрать статью, интересную для Хабра.
0
Таки в каком контексте верстальщик? Веб? Полиграфия/книжное дело?
0
веб.
0
Хм… а сейчас принято, что верстальщик не знает css? Просто для меня заявление от верстальщика "Хорошо хоть не пришлось учить еще и css" звучит как заявление пилота самолета "хорошо хоть не пришлось учиться еще и пилотировать".
Возможно в отрасли какие-то изменения, а я не в курсе. У вас какие должностные обязанности? Что должен уметь и делать веб верстальщик?
Возможно в отрасли какие-то изменения, а я не в курсе. У вас какие должностные обязанности? Что должен уметь и делать веб верстальщик?
0
Это была моя — личная, собственная, внутренняя — ирония над ситуацией.
Над тем, что пришлось вечерами учить незнакомые сферы php и javascript. И технический английский тоже учить. А когда дело дошло до родной и милой верстки, это был радостный выдох: «Как хорошо, что я
то знаю! Как хорошо, что не надо учить, а можно просто сесть и сделать!»
Над тем, что пришлось вечерами учить незнакомые сферы php и javascript. И технический английский тоже учить. А когда дело дошло до родной и милой верстки, это был радостный выдох: «Как хорошо, что я
то знаю! Как хорошо, что не надо учить, а можно просто сесть и сделать!»
+1
Вы бы полный листинг выложили кода, может пригодится кому, а так получилась история из серии «как я пошагово изучал html и создал свою первую хомпагу», при этом не показывая конечный результат, а просто показывая вырваные куски кода. Могли бы тогда просто обойтись ссылками на готовые библиотеки. Приходиться в некоторых моментах интуитивно догадываться что и как. Рад вашему опыту и результату, но для статьи, на мой взгляд, маловато.
+1
Очень прошу прощения за возможно очевидный вопрос, но подскажите, пожалуйста, что это за функция такая curlFunction()?
0
Вот эта штука. Честно найденная где-то в интернетах.
function curlFunction($url, $postdata=false) {
$uagent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвращает веб-страницу
curl_setopt($ch, CURLOPT_HEADER, 0); // не возвращает заголовки
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // переходит по редиректам
curl_setopt($ch, CURLOPT_ENCODING, ""); // обрабатывает все кодировки
curl_setopt($ch, CURLOPT_USERAGENT, $uagent); // useragent
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); // таймаут соединения
curl_setopt($ch, CURLOPT_TIMEOUT, 120); // таймаут ответа
curl_setopt($ch, CURLOPT_MAXREDIRS, 10); // останавливаться после 10-ого редиректа
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie/route_cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE,"cookie/route_cookie.txt");
$content = curl_exec( $ch );
curl_close( $ch );
return $content;
}
+1
Когда я писал биллинг на прошлом месте работы, нужно было писать тонны пауков для работы с билайном, мегафоном и мтсом (у которых для партнёров юрлиц нет нормального апи, ха ха три раза), у которых все личные кабинеты на java (она тоже очень любит viewstate и при этом «ломаться» когда, например, есть на странице подгрузка аяксом 2-3 элементов, а вам нужен 4ый, для которого у вас уже есть необходимые параметры, но вы не можете отправить запрос сразу за 4, а вынуждены делать 2 и 3, иначе бекэнд ругается). Вот тогда то я и понял насколько мощный инструмент scrapy. И какие страшные парсеры получаются на связке curl-php.
Так что я вам рекомендую scrapy, python и lxml с xpath, хотя последнее, наверное, на любителя, но на мой вкус это весьма лаконичный способ разбора html.
Так что я вам рекомендую scrapy, python и lxml с xpath, хотя последнее, наверное, на любителя, но на мой вкус это весьма лаконичный способ разбора html.
0
Sign up to leave a comment.
История о парсинге одного aspx сайта