Skip to content

Instantly share code, notes, and snippets.

@Prroffessorr
Created May 16, 2022 17:31
Show Gist options
  • Save Prroffessorr/b411caa429946c420a5b67874d053367 to your computer and use it in GitHub Desktop.
Save Prroffessorr/b411caa429946c420a5b67874d053367 to your computer and use it in GitHub Desktop.
fansmetrics.com - parser example
<?php
function get_models_for_parsing($driver, $site_url, $settings, $only_free){
$driver->get($site_url);
$driver->wait(180)->until(
Facebook\WebDriver\WebDriverExpectedCondition::urlContains($site_url)
);
//get source form page
$parsing_page = $driver->getPageSource();
$crawler = new \Symfony\Component\DomCrawler\Crawler($parsing_page);
$save_info = new SaveInfoFromPage();
//get info from all model on page
foreach($crawler->filter('table tbody')->children() as $content) {
$top_models = new \Symfony\Component\DomCrawler\Crawler($content);
$get_name = $top_models->filter('p[class="mt-1 text-xs text-gray-600"]')->text();
$get_url = $top_models->filter('a[class="underline js-creator-link"]')->attr('href');
$get_price = $top_models->filter('div[class="md:px-4"]')->text();
//if we need parse models with free folowing
if($only_free == true && $get_price == "FREE"){
//get data to save
$data = [
'type' => "Model:",
'model_name' => $get_name,
'url' => $get_url,
'price' => $get_price,
];
//save data in file
$save_info->save_info($data, $settings->saved_info->parcing_models, $settings);
}
//if we need get all
else if($only_free == false){
//get data to save
$data = [
'type' => "Model:",
'model_name' => $get_name,
'url' => $get_url,
'price' => $get_price,
];
//save data in file
$save_info->save_info($data, $settings->saved_info->parcing_models, $settings);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment