1 尝试下file_get_contents(urlencode("http://forum.xinhuanet.com/listtopic.jsp?bid=50")),如果需要登录才能得到的页面,最好使用curl进行模拟登陆,毕竟curl的功能要比file_get_contents强大的多。
2 我跟你的做法一样,首先应该采集帖子列表页。获取列表页所有的帖子链接,比如你来看下这个板块:http://www.tatazu.com/bbs/forumdisplay.php?fid=4
首先应该把这个列表页所有的帖子id采集到,装入一个数组。也就是列表页内所有的http://www.tatazu.com/bbs/viewthread.php?tid=38663&extra=page%3D1链接里面的tid=38663这个参数,把这一页的所有帖子id都获取到,再去循环采集每个链接页面的帖子就可以了。这应该是最好的方法了。数据量大那是肯定的,光采集一个板块的速度就相当的慢。这跟php本身不支持多线程有关。还有一点,你必须使用时间缓存数据,这种数据不可能实时得到。1,2个小时采一次就可以了。
2 我跟你的做法一样,首先应该采集帖子列表页。获取列表页所有的帖子链接,比如你来看下这个板块:http://www.tatazu.com/bbs/forumdisplay.php?fid=4
首先应该把这个列表页所有的帖子id采集到,装入一个数组。也就是列表页内所有的http://www.tatazu.com/bbs/viewthread.php?tid=38663&extra=page%3D1链接里面的tid=38663这个参数,把这一页的所有帖子id都获取到,再去循环采集每个链接页面的帖子就可以了。这应该是最好的方法了。数据量大那是肯定的,光采集一个板块的速度就相当的慢。这跟php本身不支持多线程有关。还有一点,你必须使用时间缓存数据,这种数据不可能实时得到。1,2个小时采一次就可以了。
解决方案 »
- 谁帮写个超链接判断的正则。
- php文件路径问题
- 关于UTF-8
- mysql_query("SET sql_mode=''")这句是什么意思?
- 上海的SOHO一族请进来~~~
- 有关foreach的一个问题
- php如何取得系统环境变量,如分区信息,磁盘内存大小等
- 那位能解读一下这个程序,很值得学习,可是不知道为什么不能正常工作?
- 有没有 apache+mysql+php 整合套件的中 php版本在4.1以上的?或者装了底版的整个套件后,如何单独升级PHP?
- 为什么我的PHP不能在url中传递变量?
- 怎么访问根目录以外的目录?
- 例如我现在有3张图片 我想用PHP合并生成一张新图!用什么函数能实现呢?
搜索论坛,很多内容都需要登陆,建议lz做一个功能比较齐全的http客户端程序比较好。
ZF的雷库不错,可以利用它开发:
http://framework.zend.com/manual/zh/zend.http.html2.HTML/XHTML的标签很随意,也比较复杂,用正则解析内容,个人认为不现实。
建议用html解析器
http://php-html.sourceforge.net/3.数据量大师肯定的,但是可以把数据保存到数据库,以URL为键
做采集器需要深入理解HTTP协议原理,理论方面,建议lz从理解HTTP请求处理方式、cookie的基本原理、session的实现机制等入手。
有理论作基础,写http客户端程序就变得驾轻就熟了。
至于采集多个贴子,有了url就可以采集,如果想准确采取页中的一部分,那就很麻烦了,估计google都没有好的办法,只能一个一个地定义
file_get_contents(http%3A%2F%2Fforum.xinhuanet.com%2Flisttopic.jsp%3Fbid%3D50): failed to open stream: No such file or directory英文看的懂,但这个是什么原因呢?新华网的论坛版块,直接是可以打开,不需要登录。(暂时也不准备做模拟登录的功能,大部分样本论坛可以匿名查看)