【发布时间】:2012-12-19 02:01:40
【问题描述】:
PhantomJS 可以用作BeautifulSoup 的替代品吗?
我正在尝试在 Etsy 上搜索并访问术语中的所有链接。在 Python 中,我知道如何做到这一点(使用 BeautifulSoup),但今天我想看看我是否可以使用 PhantomJS 做到这一点。我不会走得很远。
此脚本应在 Etsy 上搜索“hello kitty”并返回所有产品
<a class="listing-thumb" href=...></a> 并在控制台中打印它们。理想情况下,我稍后会访问他们并获取我需要的信息。现在它只是冻结。有什么想法吗?
var page = require('webpage').create();
var url = 'http://www.etsy.com/search?q=hello%20kitty';
page.open(url, function(status){
// list all the a.href links in the hello kitty etsy page
var link = page.evaluate(function() {
return document.querySelectorAll('a.listing-thumb');
});
for(var i = 0; i < link.length; i++){ console.log(link[i].href); }
phantom.exit();
});
我曾尝试过使用CasperJS,这可能是为此设计的更好。
【问题讨论】:
-
我建议查看cheerio。它非常适合抓取网页的任务,其遍历/操作 API 与 jQuery 非常相似。
标签: javascript beautifulsoup phantomjs casperjs