Сообщение Re[5]: Как распарсить https://apnews.com/ от 06.11.2024 12:00
Изменено 06.11.2024 13:28 kov_serg
Re[5]: Как распарсить https://apnews.com/
Здравствуйте, Passerby, Вы писали:
P>Здравствуйте, kov_serg, Вы писали:
_>>Это защита от ботов. Она привязана к ip и user-agent и доказывает прохождении капчи. Для начала можно просто из браузера скопировать, ну а потом:
P>Понятно. Много дней потратили на изучение получения таких куков? Я умножу и получу результат для себя.
А вы ленивы
P>Здравствуйте, kov_serg, Вы писали:
_>>Это защита от ботов. Она привязана к ip и user-agent и доказывает прохождении капчи. Для начала можно просто из браузера скопировать, ну а потом:
P>Понятно. Много дней потратили на изучение получения таких куков? Я умножу и получу результат для себя.
А вы ленивы
<?php require "simple_html_dom.php"; // https://sourceforge.net/projects/simplehtmldom/files/simplehtmldom/1.9.1
//$url='https://apnews.com/politics';
$url='https://apnews.com/sports';
$user_agent='Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36';
$cfg_fn='config.json';
if (!file_exists($cfg_fn)) { // https://github.com/Xewdy444/CF-Clearance-Scraper
exec("python3 main.py https://apnews.com/ -v -d -f config.json --user-agent='$user_agent'");
}
$cfg=json_decode(file_get_contents($cfg_fn));
$user_agent=$cfg->clearance_cookies[0]->user_agent;
$cf_clearance=$cfg->clearance_cookies[0]->cf_clearance;
$ctx=stream_context_create(['http'=>[
'method'=>"GET",
'header'=>"User-Agent: $user_agent\r\n" .
"Cookie: cf_clearance=$cf_clearance"
]]);
$html=file_get_html($url,false,$ctx);
if (!$html) {
unlink($cfg_fn);
die("fail\n");
}
$i=0;foreach($html->find('.PagePromo-title') as $title) {
$news_text=trim($title->plaintext);
$news_url='';$link=$title->find('a',0); if ($link) $news_url=$link->href;
//printf("%2d. <a href='%s'>%s</a><br/>\n",++$i,$news_url,htmlspecialchars($news_text));
printf("%2d. %s\n",++$i,$news_text);
}
main.py | |
| |
output | |
| |
Re[5]: Как распарсить https://apnews.com/
Здравствуйте, Passerby, Вы писали:
P>Здравствуйте, kov_serg, Вы писали:
_>>Это защита от ботов. Она привязана к ip и user-agent и доказывает прохождении капчи. Для начала можно просто из браузера скопировать, ну а потом:
P>Понятно. Много дней потратили на изучение получения таких куков? Я умножу и получу результат для себя.
А вы ленивы
P>Здравствуйте, kov_serg, Вы писали:
_>>Это защита от ботов. Она привязана к ip и user-agent и доказывает прохождении капчи. Для начала можно просто из браузера скопировать, ну а потом:
P>Понятно. Много дней потратили на изучение получения таких куков? Я умножу и получу результат для себя.
А вы ленивы
<?php require "simple_html_dom.php"; // https://sourceforge.net/projects/simplehtmldom/files/simplehtmldom/1.9.1
//$url='https://apnews.com/politics';
$url='https://apnews.com/sports';
$user_agent='Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36';
$cfg_fn='config.json';
if (!file_exists($cfg_fn)) { // https://github.com/Xewdy444/CF-Clearance-Scraper
exec("python3 main.py https://apnews.com/ -v -d -f config.json --user-agent='$user_agent'");
}
$cfg=json_decode(file_get_contents($cfg_fn));
$user_agent=$cfg->clearance_cookies[0]->user_agent;
$cf_clearance=$cfg->clearance_cookies[0]->cf_clearance;
$ctx=stream_context_create(['http'=>[
'method'=>"GET",
'header'=>"User-Agent: $user_agent\r\n" .
"Cookie: cf_clearance=$cf_clearance"
]]);
$html=file_get_html($url,false,$ctx);
if (!$html) {
unlink($cfg_fn);
die("fail\n");
}
$i=0;foreach($html->find('.PagePromo-title') as $title) {
$news_text=trim($title->plaintext);
$news_url='';$link=$title->find('a',0); if ($link) $news_url=$link->href;
//printf("%2d. <a href='%s'>%s</a><br/>\n",++$i,$news_url,htmlspecialchars($news_text));
printf("%2d. %s\n",++$i,$news_text);
}
main.py | |
| |
output | |
| |