免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5006 | 回复: 14
打印 上一主题 下一主题

perl提取网页内容问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-31 10:37 |只看该作者 |倒序浏览
我用一下命令提取网页http://www.ncbi.nlm.nih.gov/SNP/snp_ref.cgi?type=rs&rs=530的以下内容(图片所示)



命令:
use LWP::Simple;
my $url="http://www.ncbi.nlm.nih.gov/SNP/snp_ref.cgi?type=rs&rs=530";
my $content=get($url);

但是提取的结果中根本就没有图片中我想要的内容,不知道怎么回事,请指教:谢谢!
1

论坛徽章:
0
2 [报告]
发表于 2010-03-31 10:40 |只看该作者
本帖最后由 climby 于 2010-03-31 10:45 编辑

在你的 $url中有些特殊字符'&' 不妨考虑使用单引号先?
不好意思,我亲自测试,发现双引号并没有影响,看来直觉不可靠。 但我想我发现了问题所在。

你要抓取的页面中大量使用了ajax,页面的部分内容是通过ajax请求后加载的。你需要分析页面中的js, 找到具体的ajax请求,然后根据请求的url抓内容

论坛徽章:
0
3 [报告]
发表于 2010-03-31 10:45 |只看该作者
回复 2# climby


谢谢您的回答,我感觉 不是这个问题,
http://www.ncbi.nlm.nih.gov/site ... rch&term=rs8896这个网页中也有&,但是我可以把
GGGCTCTAGAGGGGGTAGAGGGGGTG[C/T]TATAGGGTAAATACGGGCCCTATTT这段序列提取出来。

论坛徽章:
0
4 [报告]
发表于 2010-03-31 11:00 |只看该作者
我稍微分析了一下那个页面,的确你所要抓取的内容是通过ajax返回的,所以你你抓$url只能得到外层的框架页,不包含这部分内容。 我跟踪发现你所需要的内容是ajax通过如下url 获取的
  1. http://www.ncbi.nlm.nih.gov/projects/SNP/snp_gene.cgi?rs=530
复制代码
这个返回的是一个javascript结构, 你只要稍微处理一下就得到了你想要的数据了。 比从页面中获取还方便呢{:3_189:}

论坛徽章:
0
5 [报告]
发表于 2010-03-31 11:08 |只看该作者
回复 4# climby


    谢谢了,挺好用,你是怎么发现跟踪的,能介绍一下么,以后再 遇见的问题我好解决!谢谢,呵呵

论坛徽章:
0
6 [报告]
发表于 2010-03-31 11:21 |只看该作者
我是看页面http://www.ncbi.nlm.nih.gov/SNP/snp_ref.cgi?type=rs&rs=530  的source code.
因为是javascript调用,在source code中都能找到对应的url

论坛徽章:
0
7 [报告]
发表于 2010-03-31 12:44 |只看该作者
回复 5# liuguiyou1981


    谢谢了,今天又学到了不少,呵呵

论坛徽章:
0
8 [报告]
发表于 2010-03-31 12:46 |只看该作者
之后如何处理???

论坛徽章:
0
9 [报告]
发表于 2010-03-31 13:00 |只看该作者
perl 如何把这样的数据处理成 网页呢?
呵呵新手问问 没遇到过

论坛徽章:
0
10 [报告]
发表于 2010-03-31 13:17 |只看该作者
回复 9# nuclearxin


    不是处理成网页,而是从网页上面提取 ,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP