Heim  >  Artikel  >  Backend-Entwicklung  >  如何用php 编写网络爬虫?

如何用php 编写网络爬虫?

WBOY
WBOYOriginal
2016-06-06 16:42:181166Durchsuche

如何用PHP语言编写网络爬虫?
1.别跟我说PHP不适合干这个,我不想为了写爬虫专门学一门新的语言,我知道它能实现
2.我又一定的PHP编程基础,熟悉数据结构与算法,有一般的网络基础知识,比如TCP/IP协议等概念
3.能否提供具体书籍名称,网络文章名
4.我可以贪心的求源码么?
谢谢!

回复内容:

  • pcntl_fork或者swoole_process实现多进程并发。按照每个网页抓取耗时500ms,开200个进程,可以实现每秒400个页面的抓取。
  • curl实现页面抓取,设置cookie可以实现模拟登录
  • simple_html_dom 实现页面的解析和DOM处理
  • 如果想要模拟浏览器,可以使用casperJS。用swoole扩展封装一个服务接口给PHP层调用
在多玩网这里有一套爬虫系统就是基于上述技术方案实现的,每天会抓取几千万个页面。 你需要这个-Goutte, a simple PHP Web Scraper-FriendsOfPHP/Goutte · GitHub USTC Spider 这就是用PHP写的,每隔一段时间抓取一下目标网站,将数据写入本地,然后直接读取本地文件即可。 php实现内容爬虫不难,楼上说的curl,selenium已经几乎可以完成所有可能的任务了。但是,如果还想进行内容处理,最好还是能加上一个可以处理用户交互的东西,casperjs就是啦。 《Webbots、Spiders和Screen Scrapers:技术解析与应用实践》 下午刚写的一个 通过关键词抓取符合要求的豆瓣小组的信息 ,很糙。也是刚开始学。
有个问题就是老被封, 还在想怎么解决...
还有就是太慢了... 单线程做的. 我看投票最多的答案还挺好的。准备继续改造改造。 php模拟登录教务系统,测试时显示登录成功但是页面没有跳转出来 最简单的用正则表达式+get_file_contents即可实现爬虫
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn