我试图将有关具有特定类名的所有元素的信息放入数组中。
问题是这是一个动态生成的HTML页面,只要向下滚动,该类名称的新元素就会出现。
幸运的是,我事先知道其中有多少个元素。
因此,我的假设解决方案是检查具有该特定类名的元素的数量,并且只要该数量小于我所知道的数量,就可以继续使用。
问题是我不知道如何准确地计算puppeteer中特定类名称的元素,而且API也不是很有用。
我的代码有错误,所以我尝试在错误代码中记录该值。所以我做了:
const read = await page.$$('.Ns6lhs9 _gfh3').length;
Run Code Online (Sandbox Code Playgroud)
然后我 console.log(read);
出于某种原因,undefined尽管'Ns6lhs9 _gfh3'HTML 中有带有类名的元素,但我得到了
我想将一个数组转换为一个文本文件,并用换行符分隔每个条目。
我发现了一个名为 array-to-txt-file 的 npm 包。这是网页: array-to-txt-file
这个包声称将用换行符连接数组的每个元素,以便数组的每个元素都出现在文本文件的自己的行上。
所以我试了一下,虽然效果很好,但它并没有用换行符连接元素。一个元素在哪里结束,另一个元素就在哪里开始。
所以我查看了包的源代码,这是创建这种效果的代码。
try {
array.forEach(v => {
if(_.isPlainObject(v)) {
ws.write(`${JSON.stringify(v)}\n`)
return
}
ws.write(`${v}\n`)
})
Run Code Online (Sandbox Code Playgroud)
特别是ws.write(${v}\n)部分。
然后我将我的输出文本文件导入到十六进制编辑器中。在十六进制编辑器中,每个元素之间都有一个点。现在,这个点与普通点不同。
常规点的十六进制值为2E,而出现在元素之间的点的十六进制值为0A。另请注意,我使用的是 Windows 7,当用记事本查看时,元素之间没有任何显示 - 一个结束,另一个直接开始。
那么有没有办法修改我上面发布的代码中的那一行,所以它真的在那个部分创建了一个换行符?
我正在看一下博客,详细介绍了Heartbeat实现OpenSSL的易受攻击的代码.
我找到了这一行:
unsigned char *P = &s->s3->rrec.data[0], *p1;
Run Code Online (Sandbox Code Playgroud)
我不明白的是这个指针*p如何分配两个不同的值?一个是:
&s->s3->rrec.data[0] (also, why is he referencing s?)
Run Code Online (Sandbox Code Playgroud)
另一个是
*p1
Run Code Online (Sandbox Code Playgroud)
为什么这个指针被分配了两个不同的值?
我正在使用 node.js 并且显然可以访问我的签名 cookie。
它们是这种形式:
{ 'connect.sid': 's:qX4ZrttrjydtrjkgsdghsdghrewynZj4Ew2OUh.tTSILkcvgsegsegsegsr99gmW5
0XLcJefM' }
Run Code Online (Sandbox Code Playgroud)
Puppeteer 支持 cookie 并且为了传递 cookie 的参数而有这个功能:
page.setCookie(...cookies)
...cookies <...Object>
name <string> required
value <string> required
url <string>
domain <string>
path <string>
expires <number> Unix time in seconds.
httpOnly <boolean>
secure <boolean>
sameSite <string> "Strict" or "Lax".
returns: <Promise>
Run Code Online (Sandbox Code Playgroud)
如您所见,您直接提供了每个字段的参数。有没有办法将我签名的 cookie 直接传递给 puppeteer?
我尝试按类名删除元素,但它不起作用.
这是我使用的代码:
await page.screenshot({path: 'pic.png'}); //for testing purposes
let div_selector_to_remove= ".xj7.Kwh5n";
var thingToRemove = document.querySelectorAll(div_selector_to_remove);
var number_of_elements = thingToRemove.length;
for (var i = 0; i < number_of_elements.length; i++) {
thingToRemove[i].parentNode.removeChild(thingToRemove);
}
Run Code Online (Sandbox Code Playgroud)
浏览器加载,我得到加载元素的屏幕截图.什么都没发生.元素仍然存在
我有一个阵列.出于测试目的,我输出如下内容:
for (var i=0; i<array1.length; i++){
console.log(i + ':' + array1[i]);
}
0:String1
1:String2
Run Code Online (Sandbox Code Playgroud)
现在我有第二个阵列.我想要做的是将array1的内容推送到array2.
我用这一行做到这一点:
array2.push(array1);
Run Code Online (Sandbox Code Playgroud)
不幸的是,第一个数组的内容只存在于第二个数组的一个索引中.被逗号隔开.
例如,如果我们在操作后使用查看第二个数组的内容,它将是这样的:
for (var i=0; i<array1.length; i++){
console.log(i + ':' + array1[i]);
}
0:Old_string1
1:Old_string2
2:Old_string3
3:Old_string4
4:String1,String2
Run Code Online (Sandbox Code Playgroud)
虽然我想要这样的结果:
4:String1
5:String2
Run Code Online (Sandbox Code Playgroud) 在我的理解中,如果你使用C,那么你一定会使用POSIX线程。
这些取决于操作系统,如果您使用 Linux,则必须使用<pthread.h>,而如果您使用 Windows,则必须使用<windows.h>。
这些东西也可以转移到 C++ 中。
但是,如果您使用 C++,特别是 C++11 之后的版本,那么您可以跳过 POSIX 线程方法,#include <thread>直接使用即可。
这是正确的理解吗?有什么我想念的吗?
我有这个代码:
app.post('/pst', function(req, res) {
var url = req.body.convo;
myAsyncFucntion(url).then(result => {
console.log('TAKE A LOOK AT THIS!');
//transforming array to string to pass to Buffer.from()
//then we remove ',' with newlines, so each index of array is a new line
var str = result.toString();
result = str.split(',').join('\r\n');
//clever way to send text file to client from the memory of the server
var fileContents = Buffer.from(result, 'ascii');
var readStream = new stream.PassThrough();
readStream.end(fileContents);
res.set('Content-disposition', 'attachment; filename=' + fileName);
res.set('Content-Type', 'text/plain');
readStream.pipe(res); …Run Code Online (Sandbox Code Playgroud) javascript asynchronous global-variables node.js async-await
我正在阅读 jquery 文档,它建议使用关键字method在给定路径中使用 http 动词。像这样:
$.ajax({
url: "path",
method: "POST",
Run Code Online (Sandbox Code Playgroud)
但是,我发现了使用关键字type而不是方法后跟 http 动词的代码。
是type和method一样的东西吗?还是我阅读的代码做了不同的事情?
我打开了文档,但没有关键字的规范type。