Saída do console:
Dados do artigo:
Visualização HTML:
Atualmente, há suporte para dois métodos de rastreamento de artigos.
Veja artigos por meio dos resultados de pesquisa do Sogou WeChat.
Vantagens: Este método não requer autenticação de login e é simples de operar.
Desvantagens: Apenas os últimos 10 dados podem ser capturados.
Cenário de uso: Adequado para configurar tarefas de rastreamento agendadas para obter grandes quantidades de dados.
Intercepte os parâmetros de solicitação Ajax da lista de artigos da conta pública do WeChat e simule o cliente WeChat para ler a lista de artigos e as informações do artigo.
Vantagens: Pode obter todos os dados dos artigos das contas públicas.
Desvantagens: Você precisa fazer login no WeChat e definir manualmente parâmetros como cookies por meio de ferramentas antes de poder usá-lo.
Cenário de uso: Capture uma grande quantidade de dados de contas públicas de uma vez e atualize os dados com o método Sogou após a conclusão da captura.
NodeJS e NPM, navegador Chrome, cliente de desktop WeChat (Mac ou Windows)
git clone [email protected]:f111fei/article_spider.git
cd article_spider
npm install typescript -g
npm install
tsc
Defina o arquivo config.json
no diretório raiz do projeto. Os campos são definidos da seguinte forma:
interface Config {
// 必填,要抓取的微信公众号名称。
name: string;
// 可选,若快打码平台的账号密码。用于搜狗抓取模式下自动识别验证码。
ruokuai: {
username: string;
password: string;
};
wechat: {
// 可选,要抓取文章的起始页,默认0
start?: number;
// 可选,要抓取的文章数,默认不限制
maxNum?: number;
// 可选,抓取模式(sougou, all)。默认all
mode?: string;
// 抓取模式为all时有效,公众号的biz字段,获取方法参见下面
biz?: string;
// 抓取模式为all时有效,当前cookie字段,获取方法参见下面
cookie?: string;
// 抓取模式为all时有效,当前appmsg_token字段,获取方法参见下面
appmsg_token?: string;
};
}
Se o modo de rastreamento for sougou
, pule esta seção.
Para obter os dados da solicitação Ajax da lista de artigos, você precisa capturar a solicitação para obter os dados da lista de artigos e encontrar parâmetros-chave como biz, cookie, appmsg_token e assim por diante. Veja como obter os parâmetros da solicitação.
Veja como exemplo pegar a conta pública dos NASA爱好者
.
1. Abra a conta oficial --- canto superior direito --- clique para ver o histórico de mensagens
Nota: O campo
name
na configuração deve ser preenchido com o WeChat IDnasawatch
aqui, não comNASA爱好者
.
2. Na janela aberta, clique em Abrir com navegador padrão (Chrome) na barra de menu e use o Chrome para abrir a página da lista de artigos.
3. Se o link aparecer quando aberto no navegador请在微信客户端打开链接。
prompt, indicando que o URL foi criptografado. Siga as etapas abaixo para obter o URL correto. Caso contrário, pule esta etapa.
Feche o cliente WeChat e encontre a localização do programa executável do cliente de desktop WeChat. Inicie o programa usando a linha de comando:
No Windows geralmente é:
"C:Program Files (x86)TencentWeChatWeChat.exe" --remote-debugging-port=9222
No Mac geralmente é:
"/Applications/WeChat.app/Contents/MacOS/WeChat" --remote-debugging-port=9222
Siga a etapa 1 para abrir a página de mensagens do histórico.
Abra o URL http://127.0.0.1:9222/json
usando o navegador Chrome.
Copie o campo de url e abra-o em uma nova guia, e você verá a página de histórico de mensagens correta.
4. Na página de mensagens do histórico, clique com o botão direito ---- Verifique, abra as Ferramentas do desenvolvedor do Chrome ---- Mude para a guia Rede ---- Atualize o navegador. Encontre cookie, biz, appmsg_token e outros campos à direita e preencha-os em config.json
.
Você precisa rolar a página da lista para carregar a próxima página para encontrar a solicitação começando com
https://mp.weixin.qq.com/mp/profile_ext?action=getmsg
e visualizar seus parâmetros.
Esses campos podem se tornar inválidos após algumas horas e você pode obtê-los novamente seguindo as etapas acima.
npm start
As informações do artigo rastreado, imagens e dados originais do artigo serão armazenados na pasta db no diretório raiz do projeto.