如何用JS代码获取网页中图片的链接?
varonload_func=function(status,header,body){varpatt_link=newRegExp();varpre_link=body...
var onload_func = function (status,header,body){
var patt_link = new RegExp();
var pre_link = body;
pre_link = pre_link.replace(/\n/g, "");
//debug_print(pre_link);
if (status == 200){
debug_print("onload_func start 1");
patt_link.compile(" <a name=\"Main\"></a>"+'(.+?)'+"<!-- publish_helper_end -->");
var for_link = pre_link.match(patt_link);
if(for_link == null)
{
debug_print("no picture!111");
news_public.picture_link = "http://i0.sinaimg.cn/dy/w/p/2010-11-11/1289462639_CyIIMa.jpg";
//news_public.buf_str = " 此网页无内容!";
}
else
{
patt_link.compile("src=\""+'(.+?)'+"\"");
for_link = pre_link.match(patt_link);
if(for_link == null)
{
debug_print("no picture!222");
news_public.picture_link = "http://i0.sinaimg.cn/dy/w/p/2010-11-11/1289462639_CyIIMa.jpg";
}
debug_print(for_link);
news_public.picture_link =for_link;
}
}
debug_print("pre_link complete!");
为什莫for_link是空的?compile里用什么关键字好呢?代码的目的是获取网页正文中图片的链接,需要连得网站是新浪的RSS里的新闻网页。解决问题,分数全部赠送。
谢谢几位的回答。我更想知道为什莫我的正则表达式匹配后是空的?
最主要就是 patt_link.compile(" <a name=\"Main\"></a>"+'(.+?)'+"<!-- publish_helper_end -->"); var for_link = pre_link.match(patt_link);这2句,执行之后,for_link为空。
我问的这个问题的关键点就是这2句,为什莫是空的?我用浏览器打开网页,查看源代码,我所匹配的东西确实是存在的。 展开
var patt_link = new RegExp();
var pre_link = body;
pre_link = pre_link.replace(/\n/g, "");
//debug_print(pre_link);
if (status == 200){
debug_print("onload_func start 1");
patt_link.compile(" <a name=\"Main\"></a>"+'(.+?)'+"<!-- publish_helper_end -->");
var for_link = pre_link.match(patt_link);
if(for_link == null)
{
debug_print("no picture!111");
news_public.picture_link = "http://i0.sinaimg.cn/dy/w/p/2010-11-11/1289462639_CyIIMa.jpg";
//news_public.buf_str = " 此网页无内容!";
}
else
{
patt_link.compile("src=\""+'(.+?)'+"\"");
for_link = pre_link.match(patt_link);
if(for_link == null)
{
debug_print("no picture!222");
news_public.picture_link = "http://i0.sinaimg.cn/dy/w/p/2010-11-11/1289462639_CyIIMa.jpg";
}
debug_print(for_link);
news_public.picture_link =for_link;
}
}
debug_print("pre_link complete!");
为什莫for_link是空的?compile里用什么关键字好呢?代码的目的是获取网页正文中图片的链接,需要连得网站是新浪的RSS里的新闻网页。解决问题,分数全部赠送。
谢谢几位的回答。我更想知道为什莫我的正则表达式匹配后是空的?
最主要就是 patt_link.compile(" <a name=\"Main\"></a>"+'(.+?)'+"<!-- publish_helper_end -->"); var for_link = pre_link.match(patt_link);这2句,执行之后,for_link为空。
我问的这个问题的关键点就是这2句,为什莫是空的?我用浏览器打开网页,查看源代码,我所匹配的东西确实是存在的。 展开
4个回答
展开全部
patt_link.compile(" <a name=\"Main\"></a>"+'(.+?)'+"<!-- publish_helper_end -->");
这句话其实没有什么效果主要是为了提升一下效率,而正则表达式就是
"<a name=\"Main\"></a>"+'(.+?)'+"<!-- publish_helper_end -"
就是这个问题了,你说看到的,你可以将文本列出来,然后我看下是不是匹配
估计是你看错了
解决问题的时候将问题抽象出来
你应该将那个匹配不成功的文本拿出来用上面的match看是不是正则表达式没写好
如果不是再看是不是其它问题
正则表达式有误
你可以先将patt_link的值设的简单点,例如: "<a" 这样匹配看是否有结果
得到图片连接为什么不这样用document.links 及document.images ?
这个要比与此同时表达式去匹配方便的多
var linksArr = document.links;
for(var i=0; i< linksArr.length; i++)
{
linksArr[i].src ... ...
}
这句话其实没有什么效果主要是为了提升一下效率,而正则表达式就是
"<a name=\"Main\"></a>"+'(.+?)'+"<!-- publish_helper_end -"
就是这个问题了,你说看到的,你可以将文本列出来,然后我看下是不是匹配
估计是你看错了
解决问题的时候将问题抽象出来
你应该将那个匹配不成功的文本拿出来用上面的match看是不是正则表达式没写好
如果不是再看是不是其它问题
正则表达式有误
你可以先将patt_link的值设的简单点,例如: "<a" 这样匹配看是否有结果
得到图片连接为什么不这样用document.links 及document.images ?
这个要比与此同时表达式去匹配方便的多
var linksArr = document.links;
for(var i=0; i< linksArr.length; i++)
{
linksArr[i].src ... ...
}
展开全部
你对js基础是了解的,我就不说代码了,首先通过那个连接所属的对像的id获得该对象,然后通过该对象获得他的属性的值,也就是你要获得地址的哪个属性
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过document.getElementById()取得元素属性
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给出几个rss的新闻网页看看代码,找出规则才能适当的使用正则
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询