我想要一个每小时都会抓取某个网页的脚本,并会在该页面中查找某个字符串。
但是,当我进入该页面并使用`view:source“时,我无法在源代码中看到该字符串。我被告知这是因为我正在寻找的字符串来自客户端上呈现的元素side(javascript),因此我只能在使用Chrome控制台手动检查该元素时看到它。
考虑到我想从我的webhost服务器(2.25GB RAM)运行该脚本,哪种实践/编程语言/环境最有效实现我想要的呢?
有人建议我使用Pyqt4,但是我的网络主机警告我这会破坏我的RAM并损害服务器性能。我应该注意,脚本应该非常简单,并且每小时只抓一页。
答案 0 :(得分:1)
似乎问题可以通过PhantomJS解决,因为它会嘲弄真正的浏览器操作,从客户端代码中提取信息。
对于使用Javascript的PhantomJS,您可以查看testing-javascript-with-phantomjs
有关如何将PhantomJS与python一起使用,请查看this
希望有所帮助〜
答案 1 :(得分:0)
我在源
中看不到该字符串
如果您只需要获取页面的一个字符串,则可以编程以执行与js相同的操作。 如果JS发送ajax请求(GET或POST),你也可以使用纯Python来获取它,从而获取丢失的字符串。
假设页内脚本执行以下操作(注意代码可能在纯JS中,请参阅here示例):
$.ajax({
url: "test.html",
context: document.body
}).done(function() {
$( this ).addClass( "done" );
});
所以在你的Python脚本中你要求' test.html'文件:
import requests
base='http://example.com/'
r = requests.get( base + 'test.html')
从而得到所需的数据:
print r.headers['content-type']
// 'application/json; charset=utf8'
print r.text
// u'{"data":"<string>"...'