重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个需要配合js,打开一个html页面,首先js用ajax请求页面,返回第一个页面信息确定处理完毕(ajax有强制同步功能),ajax再访问第二个页面。(或者根据服务器状况,你可以同时提交几个URL,跑几个相同的页面)
创新互联-专业网站定制、快速模板网站建设、高性价比同心网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式同心网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖同心地区。费用合理售后完善,十年实体公司更值得信赖。
参数可以由js产生并传递url,php后台页面根据URL抓页面。然后ajax通过php,在数据库或者是哪里设一个标量,标明检测到哪里。由于前台的html页面执行多少时候都没问题,这样php的内存限制和执行时间限制就解决了。
因为不会浪费大量的资源用一个页面来跑一个瞬间500次的for循环了。(你的500次for循环死了原因可能是获取的数据太多,大过了php限制的内存)
不过印象中curl好像也有强制同步的选项,就是等待一个抓取后再执行下一步。但是这个500次都是用一个页面线程处理,也就是说肯定会远远大于30秒的默认执行时间。
简单的分了几个步骤:
1、确定采集目标
2、获取目标远程页面内容(curl、file_get_contents)
3、分析页面html源码,正则匹配你需要的内容(preg_match、preg_match_all),这一步最为重要,不同页面正则匹配规则不一样
4、入库
我是做数据采集的,
在我看来,除了输入验证码 , 没有什么能对我起到很好的防采集,
一般大的网站都是采用 网页加入一次性随机值 ,再有前端JS 生成秘钥 ,最后一并提交加密了的数据 ,这种没什么效果 。对一般的人可以做下防御 。但是,我只要找出它的JS加密函数 。 使用一个JS服务器(node.js),或php的 php 改写的js加密实现过程 ,加密初始值,再模拟发送 。所以,这个也没什么多大作用 。
对于验证码 ,一般简单的都可以程序识别 ,复杂的提交到前台让手动输入 。再一并发送。 这种用户体验不好。 慎行。
总的来说,建议用JS 加密吧 。
但是,还是防御不了。
我一般用 filefox 的 filebug 或 小提琴工具 。
目前大半年了,没有破解不了的网站 。
我用我的php程序 ,可以操作你的网站 。实现 用户操作 我的php程序 ,我的php程序 再去操作源网站 。
你可以去研究下 58同城网 的登录 。那里面一堆的加密 。 在我看来都是垃圾代码 。 我的程序一键登录进去。
首先考虑对方API,不过我估计中国人的网站没几个开API的。
亚马逊就有API,你可以调取图书信息。
要么根据链接,获取整个网页内容,然后用正则表达式获取指定部分数据。
可以参考 的数据采集教程