cuốn sách gpt4 ai đã làm

android — Chọn hàng thứ hai của bảng bằng cách sử dụng con rối

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 23:58:36 25 4
mua khóa gpt4 Nike

Tôi đang làm việc trong trình thu thập thông tin bằng cách sử dụng node.js và con rối, mục tiêu của tôi là lấy dữ liệu cho hai cột trong một bảng (ngày và mô tả), mã hoạt động tốt cho đến khi chặn việc lấy dữ liệu từ các cột...

Đây là mã đầy đủ, bao gồm cả URL của trang tôi đang thu thập:

const fs = require('fs');
const người múa rối = require('người múa rối');

const urlConsulta = "http://www.tre-pr.jus.br/";
const numeroProcessoSeq = "000000889";
const numeroProcessoAno = "2014";
const numeroProcessoDigito = "6160047";

var wait = ms => new Promise((r, j)=> setTimeout(r, ms));

void (không đồng bộ () => {
thử {
const browser = đang chờ con rối.launch({
không đầu: sai
});
trang const = đang chờ browser.newPage();
đang chờ trang.goto(urlConsulta);
đang chờ page.select('#acao', 'pesquisarNumUnico');
đang chờ trang.evaluate((numeroProcessoSeq, numeroProcessoAno, numeroProcessoDigito) => {
document.getElementById('numUnicoSequencial').value = numeroProcessoSeq;
document.getElementById('numUnicoAno').value = numeroProcessoAno;
document.getElementById('numUnicoOrigem').value = numeroProcessoDigito;
}, numeroProcessoSeq, numeroProcessoAno, numeroProcessoDigito);

đang chờ trang.$eval('form[action*="http://www.tre-pr.jus.br/@@processrequest"]', form => form.submit());

đang chờ trang.waitForNavigation();
var frame = đang chờ page.frames().find(f => f.name() === 'ifr_servicos');
đang chờ frame.click('a[href*="ExibirDadosProcesso"]');
đang chờ page.frames().find(f => f.name() === 'ifr_servicos');
chờ đợi (10000);
đang chờ frame.click('[name*="todos"]');
đang chờ frame.$eval('[name*="ExibirPartesProcessoZona"]', form => form.submit());
chờ đợi (10000);
hãy chuỗi = đang chờ buscaFase (khung);
fs.writeFile("teste.txt", string, function(err) {
nếu (lỗi) {
trả về console.log(err);
}
console.log("Tập tin đã được lưu!");
});
console.log(chuỗi);
chờ đợi (10000);
đang chờ browser.close();
} bắt (lỗi) {
console.log(lỗi);
}
})();

hàm không đồng bộ buscaFase(frame) {
return đang chờ frame.evaluate(() => {
hãy div = document.querySelector('div[id*="conteudo"]');
hãy rowns = Array.from(div.children[4].children[0].children);
hãy để movimentosInfo = rowns.map(row => {
hãy để dữ liệu = row.querySelector("tr td:first-child").textContent;
hãy descricao = row.querySelector("tr td:first-child + td").textContent;
trả về { dữ liệu, mô tả };
});
trả về JSON.stringify(movimentosInfo);
});
};

Nhận các hàng dữ liệu cụ thể:

hãy để dữ liệu = row.querySelector("tr td:first-child").textContent;
hãy descricao = row.querySelector("tr td:first-child + td").textContent;

câu trả lời hay nhất

Vấn đề là không phải tất cả tr Cả hai đều có các yếu tố con mà bạn mong đợi. Điều này có thể là do td Được đánh dấu bằng colspan. Vì vậy bạn nên lọc mảng trước để sắp xếp các phần tử còn lại.

mã số

Thay đổi dòng bao gồm chức năng bản đồ từ hãy để chuyển độngInfo = ... Thay đổi thành:

hãy để movimentosInfo = rowns.filter(row => {
return row.querySelector("tr td:first-child") && row.querySelector("tr td:first-child + td");
}).map(hàng => {
hãy để dữ liệu = row.querySelector("tr td:first-child").textContent;
hãy descricao = row.querySelector("tr td:first-child + td").textContent;
trả về { dữ liệu, mô tả };
});

Điều này bổ sung chức năng lọc để kiểm tra sự hiện diện của phần tử được yêu cầu trước khi ánh xạ nội dung của nó.

Về javascript - sử dụng con rối để chọn hàng thứ hai của bảng, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/55872007/

25 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress