作者nottt (无)
看板Web_Design
标题Re: [问题] 如何从其他网页抓资料
时间Sun Oct 25 23:13:01 2015
※ 引述《yhn0tgb60 (呦厚厚)》之铭言:
: 我现在在自己的网页 要从其他的网页抓资料 放在自己的网页
: 例如 在 yahoo字典 把中文翻译的文字抓过来
: 我一开始 打算用 window.open 打开 yahoo字典的网页,
: https://tw.dictionary.yahoo.com/dictionary?p=table
: 然後用 回传值 去解析 html的资料, 把中文翻译的栏位挑出来,
: 不过好像是权限的关系, 所以不能这样做,
: 後来我用 jquery 的 load
: 想说先把网页 load 下来, 在分析 html,
: 不过还是不行 = =
: 请问这问题要怎麽解???? 谢谢了
这部份用後端做可能比较容易达成,不知道你是用哪种後端语言就是了
这边提供几个解法
===================================
使用ASP.NET C#的情况:
===================================
https://msdn.microsoft.com/zh-tw/ee787055.aspx
HTML Agility Pack:简单好用的快速 HTML Parser
http://www.dotblogs.com.tw/jackbgova/archive/2014/06/11/145488.aspx
[ASP.NET][C#]使用HtmlAgilityPack(2) 撷取网页上的汇率
这两篇都是使用Asp.net C#的HTML Agility Pack做为网页分析器
让我们可以使用html标签来取资料,不用刻一些很难懂的正规表达式
例如
docStockContext.DocumentNode.SelectNodes("./tr[1]/th");
直接选出tr th 标签
==================================
使用PHP的情况:
==================================
http://registerboy.pixnet.net/blog/post/24262327
PHP Simple HTML DOM Parser 强力解析html工具
http://blog.wu-boy.com/2010/09/codeigniter
[CodeIgniter] 简单撷取 html 原始码(PHP Simple HTML DOM Parser)
同样是帮助我们快速分析网页,还蛮直觉的,把网址塞进去,把东西倒出来
// 产生DOM物件
$dom = file_get_dom('
http://www.google.com/');
// 找出所有网页连结
$result = $dom->find('a');
foreach($result as $v) {echo $v->href . '<br>';}
Yahoo字典那个我试了一下,不需要使用post,网址换换就好
http://tw.dictionary.search.yahoo.com/search?p=tree&fr2=dict
如果未来碰到需要使用post才能取得网页的话,可以去研究一下php curl,
取回传结果後再用Simple Html Dom Parser就好
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.187.87.180
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Web_Design/M.1445785991.A.A73.html
※ 编辑: nottt (218.187.87.180), 10/25/2015 23:13:23
1F:推 yhn0tgb60: 感谢 10/26 13:51