使用 Web Scraping 从网站获取数据
Posted
技术标签:
【中文标题】使用 Web Scraping 从网站获取数据【英文标题】:Get Data From Website With Web Scraping 【发布时间】:2017-03-18 11:16:14 【问题描述】:我想从数据存储在内部 div 中的网站获取所有图像,我如何获取所有图像。我试过了,但它不能工作。这是我的代码
<?php
$html = file_get_contents('http://en.vonvon.me/'); //get the html returned from the following url
$pokemon_doc = new DOMDocument();
libxml_use_internal_errors(TRUE); //disable libxml errors
if(!empty($html)) //if any html is actually returned
$pokemon_doc->loadHTML($html);
libxml_clear_errors(); //remove errors for yucky html
$pokemon_xpath = new DOMXPath($pokemon_doc);
//get all the h2's with an id
$pokemon_row = $pokemon_xpath->query('div[class=desc ng-binding]');
if($pokemon_row->length > 0)
foreach($pokemon_row as $row)
echo $row->nodeValue . "<br/>";
?>
【问题讨论】:
那么,有什么问题吗?没有或错误的输出?错误信息?检查错误日志?顺便说一句.. 如果您的代码不起作用,您应该删除@
标志,因为它们会抑制错误消息,这在调试时很有帮助。
【参考方案1】:
你不能抓取使用 javascript [Angular] 工作的网站,抓取工具在 JavaScript 执行后看不到 DOM。
但另一方面,如果图像在 dom 中,您可以使用
最好的办法是Simple HTML DOM Parser
$html = file_get_html('http://vonvon.me/');
// Find all images
foreach($html->find('img') as $element)
echo $element->src . '<br>';
【讨论】:
你现在能看一下代码吗,图像在一个内部 div 中,这就是我这样做但它仍然不起作用的原因。 对不起,我没有看到 DOM,在发布答案之前,网站使用的是 Angular JS,你不能废弃它。以上是关于使用 Web Scraping 从网站获取数据的主要内容,如果未能解决你的问题,请参考以下文章
使用 Python 和 asyncio 进行 Web Scraping
Web Scraping 代码中的 JSON 错误,如何修复?