Salida de consola:
Datos del artículo:
Vista previa HTML:
Actualmente, se admiten dos métodos para rastrear artículos.
Obtenga artículos a través de los resultados de búsqueda de Sogou WeChat.
Ventajas: este método no requiere autenticación de inicio de sesión y es fácil de operar.
Desventajas: solo se pueden capturar los últimos 10 datos.
Escenario de uso: adecuado para configurar tareas de rastreo programadas para obtener grandes cantidades de datos.
Intercepte los parámetros de solicitud Ajax de la lista de artículos de la cuenta pública de WeChat y simule el cliente WeChat para leer la lista de artículos y la información del artículo.
Ventajas: Puede obtener todos los datos de los artículos de las cuentas públicas.
Desventajas: debe iniciar sesión en WeChat y configurar manualmente parámetros como las cookies a través de herramientas antes de poder usarlo.
Escenario de uso: capture una gran cantidad de datos de cuentas públicas a la vez y actualice los datos con el método Sogou una vez completada la captura.
NodeJS y NPM, navegador Chrome, cliente de escritorio WeChat (ya sea Mac o Windows)
git clone [email protected]:f111fei/article_spider.git
cd article_spider
npm install typescript -g
npm install
tsc
Configure el archivo config.json
en el directorio raíz del proyecto. Los campos se definen de la siguiente manera:
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;
};
}
Si el modo de rastreo es sougou
, omita esta sección.
Para obtener los datos de solicitud Ajax de la lista de artículos, debe capturar la solicitud para obtener los datos de la lista de artículos y encontrar parámetros clave como biz, cookie, appmsg_token, etc. A continuación se explica cómo obtener los parámetros de la solicitud.
Tomemos como ejemplo la cuenta pública de NASA爱好者
.
1. Abra la cuenta oficial --- esquina superior derecha --- haga clic para ver el historial de mensajes
Nota: El campo
name
en la configuración debe completarse con el ID de WeChatnasawatch
aquí, no conNASA爱好者
.
2. En la ventana abierta, haga clic en Abrir con el navegador predeterminado (Chrome) en la barra de menú y use Chrome para abrir la página de lista de artículos.
3. Si el enlace aparece cuando se abre en el navegador请在微信客户端打开链接。
mensaje, indicando que la URL ha sido cifrada. Siga los pasos a continuación para obtener la URL correcta. De lo contrario, omita este paso.
Cierre el cliente WeChat y busque la ubicación del programa ejecutable del cliente de escritorio WeChat. Inicie el programa usando la línea de comando:
En Windows suele ser:
"C:Program Files (x86)TencentWeChatWeChat.exe" --remote-debugging-port=9222
En Mac suele ser:
"/Applications/WeChat.app/Contents/MacOS/WeChat" --remote-debugging-port=9222
Siga el paso 1 para abrir la página de mensajes del historial.
Abra la URL http://127.0.0.1:9222/json
usando el navegador Chrome.
Copie el campo de URL y ábralo en una nueva pestaña, y verá la página de mensajes históricos correcta.
4. En la página de mensajes del historial, haga clic derecho ---- Verificar, abrir Herramientas para desarrolladores de Chrome ---- Cambiar a la pestaña Red ---- Actualizar el navegador. Busque cookies, biz, appmsg_token y otros campos a la derecha y rellénelos en config.json
.
Debe desplazarse hacia abajo en la página de la lista para cargar la página siguiente y encontrar la solicitud que comienza con
https://mp.weixin.qq.com/mp/profile_ext?action=getmsg
y ver sus parámetros.
Estos campos pueden dejar de ser válidos después de unas horas y puede volver a obtenerlos siguiendo los pasos anteriores.
npm start
La información del artículo rastreado, las imágenes y los datos del artículo original se almacenarán en la carpeta db en el directorio raíz del proyecto.