Heim > Fragen und Antworten > Hauptteil
先通过关键词获取搜索结果页,http://www.baidu.com/s?wd=%E5%BE%B7%E9%97%AE
然后得到每一条详情的url,比如第一条是
http://www.baidu.com/link?url=Fp3X9GDNzDR4aoC670eWN-VzZ-f8cAngzl6zK1n1bZi&wd=&eqid=f0d0de2f0000dae3000000045696071b
通过curl抓取这个url的内容,可是输出结果会跳转到真实地址,此实例为http://www.dewen.net.cn/而不是在本地输出页面内容。请问有什么办法吗?
代言2016-11-11 11:51:46
这个使用php函数preg_match_all(pattern, subject,
matches)应该可以实现,这需要你写出正确的正则表达式,返回的结果matches是一个数组,一般这个数组由几个元素组成,你可以根据需求获取你需要的url内容,我曾经做过一次抓取百度搜索页中搜索结果的详情url不过我当时要的是真实地址,但通过上面的函数把真实地址,以及“http://www.baidu.com/link?url=Fp3X9GDNzDR4aoC670eWN-VzZ-f8cAngzl6zK1n1bZi&wd=&eqid=f0d0de2f0000dae3000000045696071b”这样的结果都抓了进来存到了matches数组中。
另外,使用php爬虫进行解析网页内容,有一个组件可以专门用来解析网页dom叫做Simple HTML DOM parser,可以通过百度或者google搜索查看怎么使用。
第一次回答问题,根据自己的理解进行的作答,望有用。