据我所知,很多第三库都可以实现你所要求的这些php爬虫特征。
创新互联-专业网站定制、快速模板网站建设、高性价比天镇网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式天镇网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖天镇地区。费用合理售后完善,十余年实体公司更值得信赖。
如phpQuery,phpCrawl,phpSpider,Snoopy。
如果使用curl,也是相当不错的。但你要做的事情更多。它只负责请求和下载,并没有实现爬虫的核心。别的事情都要自己做,至少你得先封装一下。
如果你任务比较紧迫,建议选择那些第三方库,集成一下,能用先用着。
业务时间还是了解一下爬虫的方方面面比较好。
xpath简单,拿到源码,交给phpQuery就可以,像使用jQuery一样,不需要正则。还有一些是需要动态渲染才能拿到数据的,得用无头浏览器,如phantomjs,去处理。
速度不会成为问题,有问题也是因为速度太快,被网站发觉然后屏蔽你,而不是太慢。哈哈。
个人认为比较难的是怎么针对反爬虫策略,怎么做全自动化。还是建议你去看几本关于爬虫的书。
直接用Curl就行,具体爬取的数据可以穿参查看结果,方法不区分淘宝和天猫链接,但是前提是必须是PC端链接,另外正则写的不规范,所以可以自己重写正则来匹配数据。
首先要分清楚python和php的优势和劣势。php在web开发确实一定程度上优于python,但是如果做爬虫,python毫无疑问是最优的选择。理由如下:
1:爬虫最大得困难在于反反爬。丰富的生态(Scrapy爬虫框架,selenium等等headless浏览器)让反反爬容易不少,文档丰富,各种库和driver极大的降低了爬虫编写难度。php据我所知,这些似乎没有什么太大的优势。
2:python简单,俗称胶水语言。不管是java,还是php,甚至node都可以写爬虫,但是工业级爬虫面临得场景是比较复杂的,你需要面向的业务需要的库或者组件如果本身需要不带,请问你怎么处理?python基本就不会有太多这种问题。
最后想学python爬虫的可以点个关注。长期总结爬虫教程。
可以用以下4个方法来抓取网站 的数据:
1. 用 file_get_contents 以 get 方式获取内容:
?
$url = '';
$html = file_get_contents($url);
echo $html;
2. 用fopen打开url,以get方式获取内容
?
$url = '';
$fp = fopen($url, 'r');
stream_get_meta_data($fp);
$result = '';
while(!feof($fp))
{
$result .= fgets($fp, 1024);
}
echo "url body: $result";
fclose($fp);
3. 用file_get_contents函数,以post方式获取url
?
$data = array(
'foo'='bar',
'baz'='boom',
'site'='',
'name'='nowa magic');
$data = http_build_query($data);
//$postdata = http_build_query($data);
$options = array(
'http' = array(
'method' = 'POST',
'header' = 'Content-type:application/x-www-form-urlencoded',
'content' = $data
//'timeout' = 60 * 60 // 超时时间(单位:s)
)
);
$url = "";
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
echo $result;
4、使用curl库,使用curl库之前,可能需要查看一下php.ini是否已经打开了curl扩展
$url = '';
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;