|
|
|
| помогите запарсить вот это http://profile.mygamercard.net/CenteringSoozyq
хочу данные выташить
верхний правый угол где аватар и CenteringSoozyq
Reputation: ******
GamerScore: 0
GamerZone: Recreation
или вот http://profile.mygamercard.net/Sany92
ниже тожеинформацию как взять
Sany92
"Россия"
Last Playing Xbox 360 Dashboard
Offline for 12 Hrs | |
|
|
|
|
|
|
|
для: dirol
(19.12.2008 в 15:12)
| | С чем сложности ? :)
какое конкретно выражение написали которое не вытаскивает правый угол где аватар ? | |
|
|
|
|
|
|
|
для: xx77
(19.12.2008 в 19:02)
| | вообще не че не получается. пробывал примеру тут на сайте. с регулярками не очень пока дружу.
может набросаете пример | |
|
|
|
|
|
|
|
для: dirol
(19.12.2008 в 23:37)
| | Просто находите чем уникален исходный текст перед тем что нужно, копируете, экранируете спецсимволы такие как ?.\{}()[] и дописываете (.+?) и после этого копируете так-же ещё текст после того что нужно , который не встречается в нужном , вставляете в preg_match_all() , выводите резулльтат и смотрите исходный текст
Потом читаете про синтаксис regexp'ов и оптимизируете , получая лучшее выражение
Пример :)
...______
</table>
<br>
<a><img.....>техт</a>
вам нужно слово техт и картинка , но в тексте полно слов , и тегов <img>и <а>
но <br>после которых <а> практически нет ,значит нужно цеплять шаблон конкретно за самое это место :)
пишите
$regexp = '##';
## - это ограничители выражения , после ограничителей иногда надо ставить s
, если хотите чтобы точка которая соответвтвует любому символу соответствовала-бы переносам строк
и дальше вставляете шаблон $regexp = '#<br>
<a>(.+?)</a>#';
или
$regexp = '#<br>\s*<a>(.+?)</a>#';
\s* - это 0 или больше пробельных символов \s+ - 1 или больше \s? - 0 или 1
и так потихоньку смотрите чего получается, посматриваете в справочник , эксперементируете ;)
// забыл написать , сначала удобнее сохранить у себя страничку , чтобы не мучить трафик , и над этой копией можно делать всё что захочется | |
|
|
|
|
|
|
|
для: xx77
(20.12.2008 в 03:56)
| | xx77
спасибо большое что предоставляешь такую информацию. а вот са хоть для начала не большой код можно?
file_get_contents ругается на то что-то походу что нет файла в сылке а есть только адрес( | |
|
|
|
|
автор: xx77 176x220 (20.12.2008 в 12:38) |
|
|
для: dirol
(20.12.2008 в 11:04)
| | Какой конкретно текст ошибки ?
Где запускаете ?
если на своей машине , включено-ли подключение к интернету ?
если на хостинге , включена-ли дирректива allow_url_fopen ?
имеет-ли вызов функции правильный формат , как например
<?
$txt=file_get_contents('http://адрес');
# удобнее сохранить
file_put_contents('temp.txt', $txt);
# чтобы на время дальнейшего тестирования
# можно было вместо http://адрес вставить temp.txt
|
| |
|
|
|
|
|
|
|
для: xx77 176x220
(20.12.2008 в 12:38)
| | >Какой конкретно текст ошибки ?
>Где запускаете ?
>если на своей машине , включено-ли подключение к интернету ?
>если на хостинге , включена-ли дирректива allow_url_fopen ?
>
>имеет-ли вызов функции правильный формат , как например
>
<?
>$txt=file_get_contents('http://адрес');
># удобнее сохранить
>file_put_contents('temp.txt', $txt);
># чтобы на время дальнейшего тестирования
># можно было вместо http://адрес вставить temp.txt
>
|
allow_url_fopen включена.
запускаю на своей машине. трафик не беспокоит все ок.
<?
$txt=file_get_contents('http://profile.mygamercard.net/CenteringSoozyq');
# удобнее сохранить
file_put_contents('temp.txt', $txt);
?>
|
Warning: file_get_contents(http://profile.mygamercard.net/CenteringSoozyq) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in Z:\home\test1.ru\www\index.php on line 2
а вот если так
<?
$txt=file_get_contents('http://softtime.ru/forum/addpost.php?id_forum=6&id_theme=61057');
# удобнее сохранить
file_put_contents('temp.txt', $txt);
?>
|
то все ок создается temp.txt с содержимым этой темы вот | |
|
|
|
|
|
|
|
для: dirol
(20.12.2008 в 13:17)
| | Всётаки пришлось переходить по ссылке :) Похоже просто проверяется есть-ли USERAGENT
. наверное тогда curl, попроще чем сокеты
<pre><?
$request ='http://profile.mygamercard.net/CenteringSoozyq';
$ch = curl_init();
curl_setopt_array( $ch,
array(
CURLOPT_URL => $request,
CURLOPT_TIMEOUT => 20,
CURLOPT_REFERER => "http://www.google.com/",
CURLOPT_USERAGENT => "Opera/8.01 (Windows; U; ru)",
CURLOPT_RETURNTRANSFER => 1
));
$txt=curl_exec($ch);
curl_close($ch);
file_put_contents('temp.txt', $txt);
echo htmlspecialchars($txt);
|
| |
|
|
|
|
|
|
|
для: xx77
(20.12.2008 в 15:58)
| | теперь ругается
Fatal error: Call to undefined function curl_init() in Z:\home\test1.ru\www\index.php on line 3
нехватает curl_init чтоли? где ее включить не подскажешь? у меня денвер3 стоит | |
|
|
|
|
|
|
|
для: dirol
(20.12.2008 в 16:47)
| | раскомментировать строку extension=php_curl.dll
в /usr/local/php5/php.ini
, но это если в папке ext/ лежит такая dll
или придётся качать пакет расширений к денверу с разными библиотеками
, уже не помню было-ли php_curl.dll в базовом пакете denwer3 | |
|
|
|
|
|
|
|
для: xx77
(20.12.2008 в 20:42)
| |
<pre><?
$request ='http://profile.mygamercard.net/sergey1978';
$ch = curl_init();
curl_setopt_array( $ch,
array(
CURLOPT_URL => $request,
CURLOPT_TIMEOUT => 20,
CURLOPT_REFERER => "http://www.google.com/",
CURLOPT_USERAGENT => "Opera/8.01 (Windows; U; ru)",
CURLOPT_RETURNTRANSFER => 1
));
$txt=curl_exec($ch);
curl_close($ch);
file_put_contents('temp.txt', $txt);
preg_match_all('#<div[^>]+>(?! | |<a.*</a>)(.+?)</div>#is', $txt, $out);
unset($out[0]);
echo $out[1][14];
print_r($out);
?>
|
зделал так много лишнего выводится((( | |
|
|
|
|
|
|
|
для: dirol
(21.12.2008 в 02:41)
| | вот этот уголок правый который пока хочется выташить и разобрать
<div class="padding">
<div class="userbox">
<div class="content">
<div class="section1">
<a href="http://profile.mygamercard.net/sergey1978"><img src="http://avatar.xboxlive.com/avatar/sergey1978/avatarpic-l.png" class="leftblock" alt="GamerPicture" /></a>
</div>
<div class="section2">
<h2><a href="http://profile.mygamercard.net/sergey1978">sergey1978</a></h2>
Reputation:<br />
GamerScore:<br />
GamerZone:
</div>
<div class="section3">
<div class="logoutButton">
<a href="https://secure.mygamercard.net/user/prep.php?app_id=1&act=logout&redirectURL=http%3A%2F%2Fprofile.mygamercard.net%2Fsergey1978"><img src="http://static.mgcstatic.net/images/site/topbox/logout.gif" alt="Log Out" /></a><br />
</div>
<div class="stars">
<img src="http://static.mgcstatic.net/images/site/topbox/star.gif" alt="Star" />
<img src="http://static.mgcstatic.net/images/site/topbox/star.gif" alt="Star" />
<img src="http://static.mgcstatic.net/images/site/topbox/star.gif" alt="Star" />
<img src="http://static.mgcstatic.net/images/site/topbox/star.gif" alt="Star" />
<img src="http://static.mgcstatic.net/images/site/topbox/star.gif" alt="Star" /><br />
</div>
<div class="text">
435<br />
Recreation </div>
</div>
</div>
</div>
</div>
|
| |
|
|
|
|
автор: xx77 дефицит времени (21.12.2008 в 17:38) |
|
|
для: dirol
(21.12.2008 в 02:55)
| | если честно , я не нашёл даже такого фрагмента в исходном коде.
да и некогда изучать этот чей-то враждебный сайт :)
Изучите регулярные выражения, и сможете вытаскивать всё что "пока хочется"
но грех грабить для того чтобы разместить у себя на сайте и написать " это моё " :)
никогда так не делал | |
|
|
|