Php 解析URL,循环文件获取html(URL),然后获取元素
我有一个网站,我需要分析它 首先,我必须解析页面中所有目录的URL,然后我需要输入所有URL,然后遍历所有URL并再次解析每个页面上的URL,然后遍历所有URL并获取元素“.description div” 我使用的是简单的HTMLDOM 但我有一个问题,当我想通过我第一次解析的所有URL时。 我得到的是空页Php 解析URL,循环文件获取html(URL),然后获取元素,php,arrays,parsing,foreach,simple-html-dom,Php,Arrays,Parsing,Foreach,Simple Html Dom,我有一个网站,我需要分析它 首先,我必须解析页面中所有目录的URL,然后我需要输入所有URL,然后遍历所有URL并再次解析每个页面上的URL,然后遍历所有URL并获取元素“.description div” 我使用的是简单的HTMLDOM 但我有一个问题,当我想通过我第一次解析的所有URL时。 我得到的是空页 include 'simple_html_dom.php'; $catalogs = file_get_html('http://optnow.ru/catalog'); $catalog
include 'simple_html_dom.php';
$catalogs = file_get_html('http://optnow.ru/catalog');
$catalogLink = [];
if(!empty($catalogs)) {
foreach( $catalogs->find('div.cat-name a') as $catalog) {
$catalogUrl = 'http://optnow.ru/' . $catalog->href . '?page=0';
$catalogLink[] = $catalogUrl;
$catalogHtml = file_get_html($catalogUrl);
$productsLink = $catalogHtml->find('.link-pv-name');
print_r($productsLink->href);
}
}
我的错在哪里
谢谢。您需要传递数组,而不是foreach中的单个元素:
include 'simple_html_dom.php';
$catalog = file_get_html('http://optnow.ru/catalog');
$catalogLink = [];
if(!empty($catalog)) {
foreach( $catalog->find('div.cat-name a') as $catalogHref) {
$myLink = 'http://optnow.ru/' . $catalogHref->href . '?page=0';
$catalogLink[] = $myLink;
echo '<pre>';
print_r($myLink);
echo '</pre>';
}
foreach ($catalogLink as $catalogSingleLink ) {
if(!empty($catalogSingleLink)) {
$catalogHtml = file_get_html($catalogSingleLink);
$catalogProduct = $catalogHtml->find('.link-pv-name');
echo $catalogProduct->href;
}
}
}
$catalogLink[0]作为$CatalogSingleLink如果我打印$CatalogSingleLink,我只会得到一个这样的url字符串?好的,但我只需要得到一个url,然后在每个循环中得到下一个。我需要进行for循环并迭代每个url?@Frunky不,我的意思是,您将分别获得所有url。代码将按照您的预期工作。试试看,我真的不知道为什么我得到的结果是空的。我现在更新问题,谢谢