PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
Belohalatny
Отправлено: 09 Декабря, 2011 - 22:45:30
Гость
Покинул форум
Сообщений всего: 84
Дата рег-ции: Нояб. 2011
Помог: 0 раз(а)
PHP:
скопировать код в буфер обмена
<?PHP
echo '<pre>' ;
echo "[ " . date ( 'H:i:s' ) . " ] - Начинаем работу.\r \n " ; include "sku.php" ;
function get( $url , $prox )
{
curl_setopt ( $ch , CURLOPT_USERAGENT
, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208' ) ; return $ss ;
}
function get_proxy( ) {
$proxylist = 'proxy.txt' ;
$handle = fopen ( $proxylist , "r" ) ; while ( ( $data = fgetcsv ( $handle , 40
) ) !== FALSE ) $prox [ ] = $data [ 0
] ; return $prox ;
}
else return false ;
}
$prox = get_proxy( ) ;
for ( $i = 0
, $t = count ( $product_sku ) ; $i < $t ; $i ++ ) { $content = "" ;
if ( count ( $prox ) == 0
) $prox = get_proxy
( ) ; $content = get( "http://домен/price.aspx?pcode=" . $product_sku [ $i ] [ 0] , $prox [ 0] ) ;
if ( $content == '' OR
strpos ( $content , 'Превышено число запросов к базе данных за час' ) !== false ) { $content = '' ;
echo "[ " . date ( 'H:i:s' ) . " ] - " . $product_sku [ $i ] [ 0 ] . " Блокировка прокси " . $prox [ 0 ] . ", пробуем следующую.\r \n " ; continue ;
}
elseif ( $content == '' OR
strpos ( $content , 'Access Denied' ) OR
strpos ( $content , 'Proxy Authentication Required' ) !== false ) { $content = '' ;
echo "[ " . date ( 'H:i:s' ) . " ] - " . $product_sku [ $i ] [ 0 ] . " Прокся " . $prox [ 0 ] . " не работает!\r \n " ; continue ;
}
elseif ( $content == '' OR
strpos ( $content , 'Not Found' ) !== false ) { continue ;
}
elseif ( $content == '' OR
strpos ( $content , 'заблокирован на 1 час' ) !== false ) { $content = '' ;
echo "[ " . date ( 'H:i:s' ) . " ] - " . $product_sku [ $i ] [ 0 ] . " Проксю " . $prox [ 0 ] . " забанили на час!\r \n " ; continue ;
}
elseif ( $content == '' OR
strpos ( $content , 'найден в каталогах следующих фирм:' ) !== false ) { echo "[ " . date ( 'H:i:s' ) . " ] - " . $product_sku [ $i ] [ 0 ] . " текст!\r \n " ; preg_match ( "/VAG<\/td><td>(.+)<\/td>.+\s(?:href|src|url)?=(?:[\" \'])?([^\" \']+)[\" \']?/is" , $content , $arrr ) ; // unset($product_sku[$i]);
//array_push($product_sku[$i], "0");
//array_shift ($prox);
continue ;
}
elseif ( preg_match ( '|<td class="price" align="right".*?>(.*)р.</td>|' , $content , $arr ) ) { continue ;
}
if ( $product_sku [ $i ] [ 2 ] !== "0" ) {
echo "[ " . date ( 'H:i:s' ) . " ] - " . $product_sku [ $i ] [ 0 ] . " Успешно.\r \n " ; }
}
}
$file = fopen ( 'result.csv' , 'w' ) ; foreach ( $product_sku as $key => $value ) {
settype ( $product_sku [ $key ] [ 1 ] , "float" ) ; settype ( $product_sku [ $key ] [ 2 ] , "float" ) ; $price = bcsub ( $product_sku [ $key ] [ 2
] , $product_sku [ $key ] [ 1
] , 2
) ; settype ( $product_sku [ $key ] [ 3 ] , "float" ) ; $price = bcdiv ( $product_sku [ $key ] [ 3
] , $product_sku [ $key ] [ 1
] , 4
) ; $price = $price * 100 ;
fputcsv ( $file , $product_sku [ $key ] , ',' ) ; }
echo "<pre>" ;
echo "</pre>" ;
?>
CODE (
html ):
скопировать код в буфер обмена
<input type = "hidden" name = "__EVENTVALIDATION" id = "__EVENTVALIDATION" value = "/wEWBQK+n5HPBAKE/5LrAgKBnpDPDQLQuqTtBgLHn7qXDw==" / ><b ></ b ><div class = "tablerowheader" > Указанный артикул "000098654A" найден в каталогах следующих фирм:</ div ><div >
<table class = "tbl" cellspacing = "1" cellpadding = "4" id = "gvFirmList" width = "100%" >
<tr class = "trh" >
<th scope = "col" > Фирма</ th ><th scope = "col" > Описание</ th ><th scope = "col" > Цены и заменители</ th >
</ tr ><tr onclick = "getpr('D88072DF','-4'); return false;" style = "cursor:pointer;" >
<td width = "150" > Sealed power</ td ><td > </ td ><td align = "center" width = "100" ><b ><a class = "linkPtr" href = "price.aspx?pid=D88072DF" > поиск</ a ></ b ></ td >
</ tr ><tr onclick = "getpr('D7F040BA','-4'); return false;" style = "cursor:pointer;" >
<td width = "150" > VAG</ td ><td > Кабель антенны</ td ><td align = "center" width = "100" ><b ><a class = "linkPtr" href = "price.aspx?pid=D7F040BA" > поиск</ a ></ b ></ td >
</ tr >
</ table >
</ div ><div >
кусок кода страницы, который нужно обрабатывать. весь код показать не могу, кому надо, тот догадается что это за сайт, извиняйте уж...
DlTA
Отправлено: 09 Декабря, 2011 - 23:00:02
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
а у меня работает
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
$text = '<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBQK+n5HPBAKE/5LrAgKBnpDPDQLQuqTtBgLHn7qXDw==" /><b></b><div class="tablerowheader"> Указанный артикул "000098654A" найден в каталогах следующих фирм:</div><div>
<table class="tbl" cellspacing="1" cellpadding="4" id="gvFirmList" width="100%">
<tr class="trh">
<th scope="col">Фирма</th><th scope="col">Описание</th><th scope="col">Цены и заменители</th>
</tr><tr onclick="getpr(\'D88072DF\',\'-4\'); return false;" style="cursor:pointer;">
<td width="150">Sealed power</td><td> </td><td align="center" width="100"><b><a class="linkPtr" href="price.aspx?pid=D88072DF"> поиск</a></b></td>
</tr><tr onclick="getpr(\'D7F040BA\',\'-4\'); return false;" style="cursor:pointer;">
<td width="150">VAG</td><td>Кабель антенны</td><td align="center" width="100"><b><a class="linkPtr" href="price.aspx?pid=D7F040BA"> поиск</a></b></td>
</tr>
</table>
</div><div>' ;
preg_match ( "/VAG<\/td><td>(.+)<\/td>.+\s(?:href|src|url)?=(?:[\" \'])?([^\" \']+)[\" \']?/is" , $text , $match ) ;
CODE (
text ):
скопировать код в буфер обмена
Array
(
[0] => VAG</td><td>Кабель антенны</td><td align="center" width="100"><b><a class="linkPtr" href="price.aspx?pid=D7F040BA"
[1] => Кабель антенны
[2] => price.aspx?pid=D7F040BA
)
(Добавление)
а в браузере выглядит вот так
Array ( [0] => VAGКабель антенны Кабель антенны [2] => price.aspx?pid=D7F040BA )
Поиск в теме | Версия для печати
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB