Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как спарсить страничку и выдернуть из нее нужные данные?
 
 автор: TetRiska   (08.08.2009 в 20:44)   письмо автору
 
 

Всем привет вот заинтересовал этот вопрос. Раньше еще таким не занимался. Вот часть кода из старнички:

 <ul id="nav" style="margin:0px;width:150px;overflow:hidden;">
  <li><a href="javascript: inviteMemberToGroup(9346454,28346018)">Выслать приглашение</a></li>
 </ul>

Из нее нужно выдернуть значение 28346018 и записать в файл, чтобы потом при новом сборе не записывало повторов. Тот код что привел на старничке встречается 10 раз по моему, с разными значениями которые нужно собрать.

Ребят помогите разобраться. Может где то обсуждалось. Или логику распишите что за чем надо делать, я буду пытаться писать скрипт. Заранее благодарен.

  Ответить  
 
 автор: AlexSol   (08.08.2009 в 21:12)   письмо автору
 
   для: TetRiska   (08.08.2009 в 20:44)
 

это на php делается

  Ответить  
 
 автор: TetRiska   (08.08.2009 в 21:21)   письмо автору
 
   для: AlexSol   (08.08.2009 в 21:12)
 

хмм...я думал жабоскриптом можно...потом вижу что пхпы регулярками...но я в них не силен :( Перенесите топик плз в ПХП раздел...Кто может помогите спарсить нужные данные.

  Ответить  
 
 автор: .......   (09.08.2009 в 01:11)
 
   для: TetRiska   (08.08.2009 в 21:21)
 

если начать с запятой
<?php

$txt
='<ul id="nav" style="margin:0px;width:150px;overflow:hidden;"> 
  <li><a href="javascript: inviteMemberToGroup(9346454,28346018)">Выслать приглашение</a></li> 
 </ul>'
;
 
preg_match_all('#,(\d{3,10})(?=\)">)#'$txt$a);
print_r($a);
?>

  Ответить  
 
 автор: TetRiska   (09.08.2009 в 02:35)   письмо автору
 
   для: .......   (09.08.2009 в 01:11)
 

Благодарю за пример...Вот доработал и проверил, с локальным файлом работает если вручную сохранить страничку, а если парсить напрямую получаю пустоту...Даж пробовал записать то что спарсил в файл программно, данные совсем не те..Видать защита или фиг знает :( Кто поможет спарсить по человечески?

<?php
$txt 
file_get_contents('http://vkontakte.ru/search.php?subm=1&act=adv&g=9346454&country=2&online=1&o=0&st=10'); 
$html file_put_contents('temp.html'$txt);
preg_match_all('#,(\d{3,10})(?=\)">)#'$html$a);

for(
$i=0;$i<10;$i++)
{

    
$fp fopen("temp.txt""a");
    
$mytext $a[1][$i]."\r\n";
    
$test fwrite($fp$mytext);
    
}

if (
$test) echo 'Данные в файл успешно занесены.';
else echo 
'Ошибка при записи в файл.';
fclose($fp);
?> 

  Ответить  
 
 автор: exp   (09.08.2009 в 04:21)   письмо автору
 
   для: TetRiska   (09.08.2009 в 02:35)
 

<?php
header
('content-type:text/plain');

$ch curl_init();

curl_setopt_array($ch, array(
CURLOPT_RETURNTRANSFER => 0,
CURLOPT_HEADER => 1,
CURLOPT_NOBODY => 0,
CURLOPT_TIMEOUT => 20,
CURLOPT_NOPROGRESS => 1,
CURLOPT_URL => 'http://vkontakte.ru/search.php?subm=1&act=adv&g=9346454&country=2&online=1&o=0&st=10',
CURLOPT_HTTPHEADER => array(
'cookie: test=%21%21%21',
 
'useragent: Opera 9/1 (WinXP; U; ru)',
    
'referer: http://google.com/',
    
'x_forwarded_for: 127.5.5.5')

));
curl_exec($ch);

?>
Запустите посмотрите что Вам ответили и разбирайтесь почему браузеру отдали страницу

  Ответить  
 
 автор: TetRiska   (09.08.2009 в 04:53)   письмо автору
 
   для: exp   (09.08.2009 в 04:21)
 

HTTP/1.1 302 Found
Server: nginx/0.7.59
Date: Sun, 09 Aug 2009 00:51:04 GMT
Content-Type: text/html; charset=windows-1251
Connection: keep-alive
X-Powered-By: PHP/5.2.6-1+lenny3
Set-Cookie: remixlang=1; expires=Mon, 09-Aug-2010 00:51:04 GMT; path=/; domain=.vkontakte.ru
Pragma: no-cache
Cache-control: private, must-revalidate
Set-Cookie: remixchk=5; expires=Sun, 15-Aug-2010 15:25:18 GMT; path=/; domain=.vkontakte.ru
Location: /login.php?u=1&to=search.php%3Fsubm%3D1%26act%3Dadv%26g%3D9346454%26country%3D2%26online%3D1%26o%3D0%26st%3D10
Vary: Accept-Encoding
Content-Length: 0

Что с этого следует? :)

  Ответить  
 
 автор: .......   (09.08.2009 в 06:07)
 
   для: TetRiska   (09.08.2009 в 04:53)
 

из этого следует то что послали, авторизоваться.
или выдёргивать cookie с вашего браузера, и слать их , если у авторизованых проверяются только cookie (в противном случаае пробовать менять разные поля referer .......)
или собирать из ответов set-cookie , навешивать , переходить на location , слать post-данные
, вобщем всё что нормальные браузеры вместе с юзерами

но и это может быть не всё может ьам вообще какое-нибудь ssl ещё ,)
я туда не заглядывал , аллергия на такие сайты куда хочеш просто заглянуть , а тебе сразу емейл спрашивают , авторизовывать сразу хочут

  Ответить  
 
 автор: TetRiska   (09.08.2009 в 10:06)   письмо автору
 
   для: .......   (09.08.2009 в 06:07)
 

Т.е. простым языком нужно авторизоваться и патом аж парсить? Без авторизации выдает хтмл страницу авторизации как я вижу.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования