Помошь. PHP парсинг.

Для всех любителей и профессионалов этого нелегкого дела.

Модераторы: Почётные модераторы, Модераторы "Программирование"

Помошь. PHP парсинг.

Сообщение ~$Gad$~ » 29 май 2010, 21:05

Всем доброго времени суток.
Подскажите пожалуйста как сделать следующее.
1)заходим на сайт, парсим, разделяем заголовок статьи и саму статью
2)Отправляем заголовок в админку и текст статью, далее добаляем рандомно дату, генерируем дискриптион, и ключ вставлем такой же как у заголовка, отпраляем данные на сайт (статья появляется)
3)через 6-10 секунд обновляем страницу которую парсим (на ней уже другой контент). Парсим также и отпраляем в админку.
4) Повторяем эти шаги ,пока не надоест.

смотрю в сторону cURL и регулярок, но может быть проще есть способ или уже созданная библиотека? да и с курлом фиг поймешь как сделать.
xml и dom не знаю.
get or?
Аватара пользователя
~$Gad$~
 
Сообщения: 947
Зарегистрирован: 16 янв 2008, 23:58

Re: Помошь. PHP парсинг.

Сообщение [Psycho]-Fox » 31 май 2010, 08:53

Наверняка сайт использует CSS теги для определения стилей.
Собственно, можно использовать их для ориентира. т.е. скрипт будет забирать всё, что скажем находиться между <div class=text>...</div>
Затем творим что надо, повторяем парсинг, на всякий добавляем проверку, чтобы одно и тоже не забирать...
Курл понадобиться только чтобы забрать страницу снужного сайта. Либо простым инклудом, но тут уже межсайтовый скриптинг получаеться...
Discord: Fox_exe#7634
Аватара пользователя
[Psycho]-Fox
Почётный пользователь
 
Сообщения: 2721
Зарегистрирован: 18 май 2010, 11:54

Re: Помошь. PHP парсинг.

Сообщение ~$Gad$~ » 31 май 2010, 09:29

[Psycho]-Fox писал(а):Наверняка сайт использует CSS теги для определения стилей.
Собственно, можно использовать их для ориентира. т.е. скрипт будет забирать всё, что скажем находиться между <div class=text>...</div>
Затем творим что надо, повторяем парсинг, на всякий добавляем проверку, чтобы одно и тоже не забирать...
Курл понадобиться только чтобы забрать страницу снужного сайта. Либо простым инклудом, но тут уже межсайтовый скриптинг получаеться...

дело в том что, текст разбит на абзацы, каждый абзац начинается с тега <p>, текст не находится не в каком дивном блоке. Только тайтл заключен и то в теги H1. Побывал PHP Simple HTML DOM Parser, но там при записи в текстовый файл все теги <p>, текст он просто в одну строку записывает. Что подскажите?
вот пример
Код: Выделить всё
<tr>
<td colspan="2"><br></td>
<td colspan="9" class="text"><div style="min-height:333px; height:expression('333px');">
<h2>Реферат по почвоведению</h2>
<h1 style="color:black; margin-left:0;">Тема: «Генетический ортштейн: расклинивание или сдавливание?»</h1>
<p>Конечно, нельзя не принять во внимание тот факт, что профиль растворяет десуктивно-выпотной гистерезис ОГХ даже в том случае, если непосредственное наблюдение этого явления затруднительно. Являясь следствием законов широтной зональности и вертикальной поясности, переуплотнение неустойчиво эволюционирует в неоднородный подзол, хотя этот факт нуждается в дальнейшей тщательной экспериментальной проверке. Переувлажнение снижает ион-селективный фронт, и этот процесс может повторяться многократно. Кристаллическая решетка минералов, на первый взгляд, снижает комковато-порошистый уровень грунтовых вод в полном соответствии с законом Дарси. К.К.Гедройцем было показано, что фрактал полидисперсен. </p>
<p>Микроагрегат, если принять во внимание воздействие фактора времени, периодически отражает дренаж как при нагреве, так и при охлаждении. Мульча дает шаг смешения, вне зависимости от предсказаний теоретической модели явления. Несмотря на кажущуюся простоту эксперимента, ташет интуитивно понятен. Сопротивление эволюционирует в осадочный потенциал почвенной влаги одинаково по всем направлениям. В случае смены водного режима воздухосодержание постоянно. </p>
<p>Монолит достоверно восстанавливает турбулентный эксикатор, что дает возможность использования данной методики как универсальной. Выветривание пространственно неоднородно. Коллембола, как следствие уникальности почвообразования в данных условиях, одномерно ускоряет амфифильный гумус при любом их взаимном расположении. Анизотропия, несмотря на внешние воздействия, параллельна. Катена скалярна. Почвенная корка флуктуационно возникает ташет, все дальнейшее далеко выходит за рамки текущего исследования и не будет здесь рассматриваться. </p>
</div></td>
<td><br></td>
</tr>
get or?
Аватара пользователя
~$Gad$~
 
Сообщения: 947
Зарегистрирован: 16 янв 2008, 23:58

Re: Помошь. PHP парсинг.

Сообщение globalmoney » 31 май 2010, 22:34

~$Gad$~ писал(а):
[Psycho]-Fox писал(а):Наверняка сайт использует CSS теги для определения стилей.
Собственно, можно использовать их для ориентира. т.е. скрипт будет забирать всё, что скажем находиться между <div class=text>...</div>
Затем творим что надо, повторяем парсинг, на всякий добавляем проверку, чтобы одно и тоже не забирать...
Курл понадобиться только чтобы забрать страницу снужного сайта. Либо простым инклудом, но тут уже межсайтовый скриптинг получаеться...

дело в том что, текст разбит на абзацы, каждый абзац начинается с тега <p>, текст не находится не в каком дивном блоке. Только тайтл заключен и то в теги H1. Побывал PHP Simple HTML DOM Parser, но там при записи в текстовый файл все теги <p>, текст он просто в одну строку записывает. Что подскажите?
вот пример


ну как вариант можно использовать регулярные выражения, а потом уже полученое распарсивать так как надо.
MGNHost.ru - Профессиональный платный хостинг
Аватара пользователя
globalmoney
 
Сообщения: 324
Зарегистрирован: 30 сен 2007, 18:35

Re: Помошь. PHP парсинг.

Сообщение 436363 » 02 июн 2010, 17:38

регулярками это всё очень просто сделать, можно и без курла я думаю, просто считывать страницу в строку, если ещё не сделал то чуть позже могу помоч, сколько страниц нужно спарсить ?
436363
 
Сообщения: 799
Зарегистрирован: 25 окт 2008, 01:01

Re: Помошь. PHP парсинг.

Сообщение ~$Gad$~ » 02 июн 2010, 20:36

436363 писал(а):регулярками это всё очень просто сделать, можно и без курла я думаю, просто считывать страницу в строку, если ещё не сделал то чуть позже могу помоч, сколько страниц нужно спарсить ?

чтоб хватило на тысячестраничнек. Имею ввиду что просто запустил когда тебе нужно скрипт, он те спарсил и тут же в бд отправил, следовательно новости тут же появились на сайте. Фишка вся в том что при обновлении страницы парсенного сайта контент на нем меняется и больше никогда не повторяется. Тоесть о многопоточности можно забыть.
От помощи не отказался бы)
Просто считывать в одну строку наверно не получится т.к в бд нужно записывать Тайтл спарсенного текста, ключ - такой же как у статьи тайтл,и дискриптион на слов 50-150.
Проще канешно на самописку прикрутить, но можно и на ВП попробовать. Библиотека вродибы есть wp poster если не ошибаюсь.
Если есть время и желание помочь - то в лс.
get or?
Аватара пользователя
~$Gad$~
 
Сообщения: 947
Зарегистрирован: 16 янв 2008, 23:58

Re: Помошь. PHP парсинг.

Сообщение [Psycho]-Fox » 04 июн 2010, 15:30

<tr>
<td colspan="2"><br></td>
<td colspan="9" class="text"><div style="min-height:333px; height:expression('333px');">
<h2>%Title</h2>
<h1 style="color:black; margin-left:0;">%text

Собственно, если это будет повторяться, то вот тебе и "Маркеры" для разбора.
Саму страницу забирать Curl'ом. Разве что форумал разбора будет опупенно длиннй и мудрёной, но это уже детали...

Посоветую ещё погуглить статейки "Граббер новостей"
Discord: Fox_exe#7634
Аватара пользователя
[Psycho]-Fox
Почётный пользователь
 
Сообщения: 2721
Зарегистрирован: 18 май 2010, 11:54


Вернуться в Программирование

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2