重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
其实用不着这么麻烦的,采集时,你看到的图片路径是相对地址,是相对当前域名的一个相对路径而已,你只要在前面加上
创新互联从2013年创立,先为来宾等服务建站,来宾等地企业,进行企业商务咨询服务。为来宾企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
http://当前域名(采集内容的域名,比如zhidao.baidu.com)/
就是它的绝对地址了,
就像/abc.jpg一样
http://当前域名(采集内容的域名,比如zhidao.baidu.com)/abc.jpg就是绝对地址了
没必要搞复杂
愚见:
用函数explode(",",$hq_str_sh601006)
能把字符串按照逗号分开。可以直接赋值给一个数组变量。
如:$hq_str_arr=explode(",",$hq_str_sh601006);
然后你自己可以从数组中按照你获取的顺序给数组中相应的元素赋值给数据库的对应字段。
希望有帮助。
一页一页采啊,你要是想把N个网页一下子采下来,在浏览器中肯定不行,你可以用php.exe在命令行下运行你的采集脚本。如果你想在浏览器上采,你得一次采集一个页面,然后用window.location.href转向,把下一个要采集的地址传过去,这样一页一页的循环来采集。
这个需要配合js,打开一个html页面,首先js用ajax请求页面,返回第一个页面信息确定处理完毕(ajax有强制同步功能),ajax再访问第二个页面。(或者根据服务器状况,你可以同时提交几个URL,跑几个相同的页面)
参数可以由js产生并传递url,php后台页面根据URL抓页面。然后ajax通过php,在数据库或者是哪里设一个标量,标明检测到哪里。由于前台的html页面执行多少时候都没问题,这样php的内存限制和执行时间限制就解决了。
因为不会浪费大量的资源用一个页面来跑一个瞬间500次的for循环了。(你的500次for循环死了原因可能是获取的数据太多,大过了php限制的内存)
不过印象中curl好像也有强制同步的选项,就是等待一个抓取后再执行下一步。但是这个500次都是用一个页面线程处理,也就是说肯定会远远大于30秒的默认执行时间。