我认为这是一个非常具有挑战性的问题!
我为我当地的足球联赛编写了一个网站www.rdyfl.co.uk,并包含来自FA的全时系统的javascript代码片段,我们生成我们的灯具,链接表格灯具最近的结果等。< / p>
对于我想要添加到网站的另一个功能,我需要为每个年龄组和部门刮掉“即将到来的固定装置”,但是当我检查源时,我有两个问题。
灯具内容由javascript生成,因此我需要查看生成的来源,而不仅仅是来源。
当我使用Firefox查看生成的源时,团队名称实际上是更多的javascript链接,而不是名称本身。
我基本上想以某种方式定期下载灯具然后写入mysql数据库?
我问过F.A.他们没有更多的选项可以访问数据吗?
之前从未编写过抓取代码可以让任何人指出一个简单的解决方案,还是有人喜欢挑战?
答案 0 :(得分:1)
并包含javascript代码段
=&GT;使用呈现Javascript的Web浏览器。这种方法适用于所有网站。
您还可以对JS进行逆向工程并从中提取数据,但这只有在您需要来自极少数网站或需要超高性能的数据时才有意义。否则工作太多了。
基于浏览器的抓取的好解决方案是Watir,Watin,Selenium和iMacros。
答案 1 :(得分:1)
这个问题很久以前就有人问过了,但我今天发现它很活跃?。
您应该能够使用无头浏览器(例如 Puppeteer)抓取网站。使用 Puppeteer,您可以像使用普通浏览器一样访问 URL 并执行 JavaScript 或与网站交互。解析输出 DOM 并存储它应该相对简单。
使用 Puppeteer 有很多关于此主题的 articles。
答案 2 :(得分:0)
最新版本的OutWit Hub在动态内容方面表现非常出色。被智取以提取链接,图像,文档和表格以及文本的源是更新的DOM。你当然可以找到一份工作来抓住你需要的东西。 自定义scraper仍然适用于版本1.0.3中的静态源,但版本1.1.x(仍在测试版中)将提供静态源和动态修改的DOM之间的选择。
答案 3 :(得分:-1)
抓取Javascript生成的内容具有挑战性。 AFAIK你需要用AJAX来做这件事。希望内容有一些css,你可以用jQuery或至少一些id。你有可以获得的id或课程吗?