【发布时间】:2016-12-30 09:59:42
【问题描述】:
我正在使用 PhantomJs 库获取数据
var page = require('webpage').create();
console.log('The default user agent is ' + page.settings.userAgent);
page.settings.userAgent = 'SpecialAgent';
page.open('https://www.apwagner.com/appliance-part/wpl/wp661600', function(status) {
if (status !== 'success') {
console.log('Unable to access network');
} else {
var ua = page.evaluate(function() {
return document.getElementById('ModelList').textContent;
//return document.getElementById('ModelList').innerHTML;
});
console.log(ua);
}
phantom.exit();
});
输出
1DNET3205TQ0
7MMMS0100VW0
7MMMS0100VW1
7MMMS0120VM0
7MMMS0140VW0
7MMMS0160VW0
如果我尝试使用 innerHTML 获取输出,则输出类似于
<ul class="modelnos">
<li><a class="cursor" href="/appliance/1dnet3205tq0" onclick="return ProductService.SaveLogModelView('1DNET3205TQ0', 'MAC')"> 1DNET3205TQ0</a></li>
<li><a class="cursor" href="/appliance/7mmms0100vw0" onclick="return ProductService.SaveLogModelView('7MMMS0100VW0', 'MAC')"> 7MMMS0100VW0</a></li>
<li><a class="cursor" href="/appliance/7mmms0100vw1" onclick="return ProductService.SaveLogModelView('7MMMS0100VW1', 'MAC')"> 7MMMS0100VW1</a></li>
<li><a class="cursor" href="/appliance/7mmms0120vm0" onclick="return ProductService.SaveLogModelView('7MMMS0120VM0', 'MAC')"> 7MMMS0120VM0</a></li>
<li><a class="cursor" href="/appliance/7mmms0140vw0" onclick="return ProductService.SaveLogModelView('7MMMS0140VW0', 'MAC')"> 7MMMS0140VW0</a></li>
</ul>
但是作为变量的输出,我想要这个数组格式的输出。
点赞var models = ["1DNET3205TQ0", "7MMMS0100VW0", "7MMMS0100VW1"];
并将此数组放入 csv 文件中。
我怎样才能在数组中获取这些数据并放入 csv。
更新:
实际上,我想从该数组中的每个值创建表 html。
就像表格中的 3 列一样。
<table>
<tr><td> 1DNET3205TQ0 </td>
<td> 7MMMS0100VW0 </td>
<td> 7MMMS0100VW1 </td>
</tr>
<tr><td> 7MMMS0120VM0 </td>
<td> 7MMMS0140VW0 </td>
<td> 7MMMS0160VW0 </td>
</tr>
</table>
【问题讨论】:
-
对于第一部分,您可以将值推送到数组中,而不是
console.log(ua)。 -
尝试
split()函数创建数组。ua.split('\n')或ua.split(' ')取决于字符串中的分隔符。它将返回一个数组 -
如何将这些数据推送到数组中。这些数据一次性打印出来
-
@abhishekkannojia anu 请检查有问题的更新
标签: javascript php csv web-scraping