采集京东首页物品以及价格信息[高分求助]-->php正则表达式如何 想采集京东首页物品以及价格信息,分页面不要就主页的疯狂抢购和下面的特价促销的 物品名称-链接-价格-图片地址就可以了....正则表达式好像没办法循环采集请问有什么好方法吗?任何方法都行...要求方便,最好是能实现每天采集一次...谢谢,完全没有头绪 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 curl file_get_contents fopen 返回的是html代码 自己再写正则分析 关键就是正则分析太难懂了...至今写不出像样的....DOM不知道如何...反正大家有什么建议否? 基本上三种:正则DOMparser string都应该试一下! dom+xpath 1. 用file_get_contents 或 curl 等取得整个页面html2. 分析你要采集的内容,用preg_match_all等 正则去 过滤出你要的数据3. 对数据再处理, 保存获取的数据4. 设定 crontab 定时执行 没有图片,那就好办了。我做了一个类似获取页面。你可以参考一下修改:$url='http://www.360buy.com/product/198955.html';$content=file_get_contents($url); //写个函数方便调用匹配!function getResult($str,$content){ preg_match('!<td class=\"tdTitle\">'.$str.'</td><td>([^<]*)</td>!is',$content,$mathes); //很简单的套用了一下格式 return $mathes[1];}echo getResult('品牌',$content);//获取了页面里参数列表里的品牌其后的参数NOKIAecho getResult('操作系统',$content);//获取了其后的参数sybian 60 楼上的各位都没听明白....我要的是首页的价格采集.......另外 file_get_contents 得到的首页内容很多是<script type="text/javascript">function rushingGoods(){..........}这里面是我想要的数据但是没办法解析啊......谁知道方法啊.............. 看你要采集的价格部分有什么特征,然后用正则匹配就可以了。难道又是在坐等完整一摸一样的源码?自己分析一下真的不难,核心就是正则,其他根本没有任何技术含量!这么简单的东西自己动手谢谢锻炼一下不好吗?代码就参考我8#的,$utl改为首页不就好了,$url='http://www.360buy.com';然后正则部分根据要匹配出的数据特征来写正则就好了! 用PHP实现JS做的事,或者直接调用它的JS生成代码,提交给你的PHP..如果是AJAX动作的话,还要模拟AJAX动作获取数据,然后让PHP或者JS处理返回来的数据 不好意思,没认真看。那你就用JQ里的$.getScript('http://JS的URL地址'),请求回来后再用正则来匹配,你看行吗。测试的话你来做就是了。呵呵! +1这个还不用正则处理或者dom处理,直接分析数据就可以了! rush.data = [[{ n: "%u8BFA%u57FA%u4E9A%u004E%u0038%u70ED%u60C5%u6A59%u8272%u821E%u52A8%u6625%u5929%uFF0C%u7279%u4EF7%u76F4%u964D%u0031%u0034%u0030%u5143%u518D%u9001%u0031%u0030%u0030%u5143%u4EAC%u5238%u8D85%u503C%u70ED%u5356%u4E2D%uFF01", p: "3248.00", i: "1965/466ac994-acd1-4f28-ad14-df4ed7ba3591.jpg", l: "297319" }, { n: "%u76F4%u964D%u0035%u0030%uFF01%u4EC5%u6B64%u0031%u5929%uFF01%u535A%u6717%u6B27%u4E50%u0042%u7535%u52A8%u7259%u5237", p: "199.00", i: "95/02b0f942-2a43-4236-b26e-8d934970ce20.jpg", l: "119525" }, { n: "%u0047%u0069%u006F%u0072%u0064%u0061%u006E%u006F%u002F%u4F50%u4E39%u5974%u7537%u88C5%u7F24%u7EB7%u7F51%u683C%u5185%u91CC%u5939%u514B", p: "109.00", i: "5428/0145d823-0617-487e-891f-02c91905b4c6.jpg", l: "1000009809" }], [{ n: "%u548C%u74F7%u8363%u534E%u5BCC%u8D35%u82B1%u74F6%u0048%u0043%u0051%u0037%u0030%u0032%u0034%u9752%u82B1", p: "399.00", i: "896/e2ca9d9b-187c-4192-a5e8-fb20df739e20.jpg", l: "334962" }, { n: "%u54C8%u5C14%u65AF%u771F%u7A7A%u65C5%u6E38%u58F6%u0020%u0020%u0037%u0035%u0030%u006D%u006C%u0020%u0048%u0059%u002D%u0037%u0035%u0030%u002D%u0033%u0020%u6854%u3001%u84DD%u3001%u4E0D%u9508%u94A2%u8272%u0028%u989C%u8272%u968F%u673A%u0029", p: "99.00", i: "3652/a44619e1-46d7-411b-b824-cd7662e35eb0.jpg", l: "189153" }, { n: "%u82CF%u6CFD%u5C14%u9752%u4E1D%u98DE%u821E%u53EF%u7231%u65F6%u5C1A%u5BB6%u5C45%u670D%u7761%u8863%u5957%u88C5%u0037%u0031%u0030%u0031%u0030%u0020%u004D", p: "89.00", i: "2763/5fa18056-c85f-4ead-93f3-857ee69ae54c.jpg", l: "361396" }], [{ n: "%u590F%u666E%u0034%u0030%u004E%u0031%u0032%u0030%u0041%u5168%u9AD8%u6E05%u6DB2%u6676%u7535%u89C6%u76F4%u964D%u0032%u0030%u0030%uFF01%u0034%u0031%u0039%u0039%u75AF%u62A2%uFF01%u4EC5%u9650%u4ECA%u5929%uFF01", p: "4199.00", i: "4567/f233c9c4-c02d-44f8-8d78-0fa339640886.jpg", l: "336775" }, { n: "%u4E09%u661F%u0020%u004E%u0050%u002D%u0052%u0056%u0034%u0031%u0031%u002D%u0053%u0030%u0035%u0043%u004E%u0020%u0020%u0069%u0033%u0020%u0033%u0038%u0030%u72EC%u663E%u0020%u0057%u0037%u0020%u0033%u0035%u0039%u0039%u5143%u521B%u5386%u53F2%u65B0%u4F4E%uFF01", p: "3599.00", i: "1616/ea48a0d1-b03c-4058-a427-19745e972579.jpg", l: "335904" }, { n: "%u7D22%u5C3C%u004A%u0031%u0030%u0020%u6570%u7801%u76F8%u673A%u0020%u5185%u5B58%u0034%u0047%u53E6%u914D%u76F8%u673A%u5305", p: "1359.00", i: "579/1d3cd04e-e00e-44c9-935e-efdc3132349f.jpg", l: "352815" }], [{ n: "%u5C3C%u5EB7%uFF08%u004E%u0069%u006B%u006F%u006E%uFF09%u0044%u0033%u0031%u0030%u0030%u0020%u5355%u53CD%u5957%u673A%u8D85%u503C%u5165%u95E8%u5355%u53CD%uFF0C%u76F4%u964D%u0032%u0030%u0030%u4F60%u503C%u5F97%u62E5%u6709%uFF01", p: "4399.00", i: "1587/69fbd371-c9bd-406b-98cc-fe195b9a3a3c.jpg", l: "292547" }, { n: "%u4F73%u80FD%uFF08%u0043%u0061%u006E%u006F%u006E%uFF09%u817E%u5F69%u0050%u0049%u0058%u004D%u0041%u0020%u004D%u0050%u0034%u0039%u0038%u0020%u55B7%u58A8%u4E00%u4F53%u673A%uFF08%u6253%u5370%u0020%u590D%u5370%u0020%u626B%u63CF%uFF09", p: "575.00", i: "3484/c62cfb2d-77c4-45df-8ac8-b4b092de709a.jpg", l: "279160" }, { n: "%u827E%u8587%u513F%uFF1A%u518D%u89C1%u6447%u7BEE%u66F2%uFF08%u9884%u552E%u7248%uFF09%uFF08%u4E09%u91CD%u8D60%u54C1%uFF09", p: "46.60", i: "18965/b54af08c-9b88-4671-a746-96db1146246b.jpg", l: "20036417" }]];直接抓取( rush.data =([^;])*; ),json_decode处理一下,中文转换一下,其他的内容就是你想要的 json_decode出来不了解感觉这个数组不像是json code代码好像也没办法转成中文....郁闷....里面的内容好像还是缺少比如img地址是给了,但是还缺少上层文件夹的地址(每个图片所在的服务器不一样)... 哦,中文是urlcode已经解决了~但是img地址缺少... 哦,好像所有img都有的,服务器不同只是均衡负载用的....但是获取这个还是比较麻烦...phpquery好像得不到rush.data... json_decode处理不了啊.........有没有抓取处理ajax之后的网页的办法?只要抓取处理ajax之后的网页,就给分... 怎么处理不了?一句处理不了就放弃了,也不说为什么处理不了,到那一步处理不了有没有抓取处理ajax之后的网页的办法?这个更加不靠谱,相当于你自己实现了浏览器dom解析 三种方法1.php 的 dom,删选节点2. 把网页当作一个字符串,用explode分割,然后找到你需要的部分3.正则以上三种方法可以混合使用 五招加速网页响应时间[转] 哪位朋友有zencart 数据表的字段说明的? wordpress插件制作报错 有没有PHP 5.3.5 版本的 ZendDebugger.dll ?配置ZendDebugger不成功! 如何用PHP获取远程大文件的大小呢?? php 编写数据库通用接口 求一个bing的正则表达式或者出钱也行 Apache的Mod_rewrite 的问题 php初学者,想请大家帮忙 请教dedecms问题 使用自定义模板后,引用路径有误 有人做过curl 登录qq邮箱或者webqq吗 求ems快递查询代码
DOM不知道如何...
反正大家有什么建议否?
DOM
parser string都应该试一下!
$url='http://www.360buy.com/product/198955.html';
$content=file_get_contents($url); //写个函数方便调用匹配!
function getResult($str,$content){
preg_match('!<td class=\"tdTitle\">'.$str.'</td><td>([^<]*)</td>!is',$content,$mathes); //很简单的套用了一下格式
return $mathes[1];
}echo getResult('品牌',$content);//获取了页面里参数列表里的品牌其后的参数NOKIA
echo getResult('操作系统',$content);//获取了其后的参数sybian 60
我要的是首页的价格采集.......另外 file_get_contents 得到的首页内容很多是
<script type="text/javascript">
function rushingGoods(){..........}这里面是我想要的数据
但是没办法解析啊......
谁知道方法啊..............
如果是AJAX动作的话,还要模拟AJAX动作获取数据,然后让PHP或者JS处理返回来的数据
+1
这个还不用正则处理或者dom处理,直接分析数据就可以了!
n: "%u8BFA%u57FA%u4E9A%u004E%u0038%u70ED%u60C5%u6A59%u8272%u821E%u52A8%u6625%u5929%uFF0C%u7279%u4EF7%u76F4%u964D%u0031%u0034%u0030%u5143%u518D%u9001%u0031%u0030%u0030%u5143%u4EAC%u5238%u8D85%u503C%u70ED%u5356%u4E2D%uFF01",
p: "3248.00",
i: "1965/466ac994-acd1-4f28-ad14-df4ed7ba3591.jpg",
l: "297319"
}, {
n: "%u76F4%u964D%u0035%u0030%uFF01%u4EC5%u6B64%u0031%u5929%uFF01%u535A%u6717%u6B27%u4E50%u0042%u7535%u52A8%u7259%u5237",
p: "199.00",
i: "95/02b0f942-2a43-4236-b26e-8d934970ce20.jpg",
l: "119525"
}, {
n: "%u0047%u0069%u006F%u0072%u0064%u0061%u006E%u006F%u002F%u4F50%u4E39%u5974%u7537%u88C5%u7F24%u7EB7%u7F51%u683C%u5185%u91CC%u5939%u514B",
p: "109.00",
i: "5428/0145d823-0617-487e-891f-02c91905b4c6.jpg",
l: "1000009809"
}], [{
n: "%u548C%u74F7%u8363%u534E%u5BCC%u8D35%u82B1%u74F6%u0048%u0043%u0051%u0037%u0030%u0032%u0034%u9752%u82B1",
p: "399.00",
i: "896/e2ca9d9b-187c-4192-a5e8-fb20df739e20.jpg",
l: "334962"
}, {
n: "%u54C8%u5C14%u65AF%u771F%u7A7A%u65C5%u6E38%u58F6%u0020%u0020%u0037%u0035%u0030%u006D%u006C%u0020%u0048%u0059%u002D%u0037%u0035%u0030%u002D%u0033%u0020%u6854%u3001%u84DD%u3001%u4E0D%u9508%u94A2%u8272%u0028%u989C%u8272%u968F%u673A%u0029",
p: "99.00",
i: "3652/a44619e1-46d7-411b-b824-cd7662e35eb0.jpg",
l: "189153"
}, {
n: "%u82CF%u6CFD%u5C14%u9752%u4E1D%u98DE%u821E%u53EF%u7231%u65F6%u5C1A%u5BB6%u5C45%u670D%u7761%u8863%u5957%u88C5%u0037%u0031%u0030%u0031%u0030%u0020%u004D",
p: "89.00",
i: "2763/5fa18056-c85f-4ead-93f3-857ee69ae54c.jpg",
l: "361396"
}], [{
n: "%u590F%u666E%u0034%u0030%u004E%u0031%u0032%u0030%u0041%u5168%u9AD8%u6E05%u6DB2%u6676%u7535%u89C6%u76F4%u964D%u0032%u0030%u0030%uFF01%u0034%u0031%u0039%u0039%u75AF%u62A2%uFF01%u4EC5%u9650%u4ECA%u5929%uFF01",
p: "4199.00",
i: "4567/f233c9c4-c02d-44f8-8d78-0fa339640886.jpg",
l: "336775"
}, {
n: "%u4E09%u661F%u0020%u004E%u0050%u002D%u0052%u0056%u0034%u0031%u0031%u002D%u0053%u0030%u0035%u0043%u004E%u0020%u0020%u0069%u0033%u0020%u0033%u0038%u0030%u72EC%u663E%u0020%u0057%u0037%u0020%u0033%u0035%u0039%u0039%u5143%u521B%u5386%u53F2%u65B0%u4F4E%uFF01",
p: "3599.00",
i: "1616/ea48a0d1-b03c-4058-a427-19745e972579.jpg",
l: "335904"
}, {
n: "%u7D22%u5C3C%u004A%u0031%u0030%u0020%u6570%u7801%u76F8%u673A%u0020%u5185%u5B58%u0034%u0047%u53E6%u914D%u76F8%u673A%u5305",
p: "1359.00",
i: "579/1d3cd04e-e00e-44c9-935e-efdc3132349f.jpg",
l: "352815"
}], [{
n: "%u5C3C%u5EB7%uFF08%u004E%u0069%u006B%u006F%u006E%uFF09%u0044%u0033%u0031%u0030%u0030%u0020%u5355%u53CD%u5957%u673A%u8D85%u503C%u5165%u95E8%u5355%u53CD%uFF0C%u76F4%u964D%u0032%u0030%u0030%u4F60%u503C%u5F97%u62E5%u6709%uFF01",
p: "4399.00",
i: "1587/69fbd371-c9bd-406b-98cc-fe195b9a3a3c.jpg",
l: "292547"
}, {
n: "%u4F73%u80FD%uFF08%u0043%u0061%u006E%u006F%u006E%uFF09%u817E%u5F69%u0050%u0049%u0058%u004D%u0041%u0020%u004D%u0050%u0034%u0039%u0038%u0020%u55B7%u58A8%u4E00%u4F53%u673A%uFF08%u6253%u5370%u0020%u590D%u5370%u0020%u626B%u63CF%uFF09",
p: "575.00",
i: "3484/c62cfb2d-77c4-45df-8ac8-b4b092de709a.jpg",
l: "279160"
}, {
n: "%u827E%u8587%u513F%uFF1A%u518D%u89C1%u6447%u7BEE%u66F2%uFF08%u9884%u552E%u7248%uFF09%uFF08%u4E09%u91CD%u8D60%u54C1%uFF09",
p: "46.60",
i: "18965/b54af08c-9b88-4671-a746-96db1146246b.jpg",
l: "20036417"
}]];
直接抓取( rush.data =([^;])*; ),json_decode处理一下,中文转换一下,其他的内容就是你想要的
感觉这个数组不像是json code代码
好像也没办法转成中文....郁闷....
里面的内容好像还是缺少
比如img地址是给了,但是还缺少上层文件夹的地址(每个图片所在的服务器不一样)...
但是img地址缺少...
phpquery好像得不到rush.data...
有没有抓取处理ajax之后的网页的办法?
只要抓取处理ajax之后的网页,就给分...
怎么处理不了?一句处理不了就放弃了,也不说为什么处理不了,到那一步处理不了有没有抓取处理ajax之后的网页的办法?
这个更加不靠谱,相当于你自己实现了浏览器dom解析
1.php 的 dom,删选节点
2. 把网页当作一个字符串,用explode分割,然后找到你需要的部分
3.正则以上三种方法可以混合使用