使用nodejs爬前程無憂前端技能排行(半半成品)

2022-03-28 17:56:12 字數 2122 閱讀 3446

最近準備換工作,需要更新一下技能樹。為做到有的放矢,想對招聘方的要求做個統計。正好之前了解過nodejs,所以做了個爬蟲搜尋資料。

具體步驟:

1.  先用fiddler分析請求需要的header和body。

2.  再用superagent構建上述資料傳送客戶端請求。

3.  最後對返回的資料使用cheerio整理。

折騰了幾個晚上,只搞出了個架子,剩餘工作等有時間再繼續開發。

/*

使用fiddler抓包,需要配置lan**,且設定如下引數

/*使用到的模組

*/var request = require('superagent'); //

傳送客戶端請求

require('superagent-proxy')(request); //

使用**傳送請求

var cheerio = require('cheerio'); //

以jq類似的方法操作返回的字元,不需要用正則

require('superagent-charset')(request);//

node不支援gbk,gb2312,this will add request.request.prototype.charset.

var async = require('async'); //

非同步流控制模組

var fs = require('fs');

/*相關引數,通過fiddler抓包後複製過來

*/var ws = fs.createwritestream('res.html',); //

a+追加的讀寫模式,w+覆蓋

agent()方法產生的例項會儲存cookie供後續使用

request.post(loginurl).proxy(proxy0).send(loginforms).end(function

(err,res0) ,

function

(err) );

console.log('successful');

})});//

jquery內建document元素為root,cheerio需要通過load方法傳入,然後用選擇器查詢指定元素,再執行相應操作。

//$.html(el);靜態方法,返回el元素的outerhtml

//todo

//1.當前只請求到一頁資料,還需構建所有頁數的請求列表

//2.向每條資料的崗位鏈結傳送請求,獲取技能關鍵字,存入檔案中

中io操作是非同步的,且沒有鎖的概念,如何併發地向同乙個檔案正確地寫入資料

結果顯示如下: 

python爬取前程無憂招聘崗位資訊

首先使用requests獲取前程無憂一級網頁 tatal re.compile 共 頁 findall rst 正則獲取總頁數 tatal int tatal 0 獲取二級網頁的url 所有崗位的url 儲存起來 with open sh1.txt a encoding utf 8 as f for...

爬取前程無憂上的招聘資訊

這段時間公司人事部門需要爬取一些崗位資訊下來,利用空閒時間寫了個指令碼下來,如下。usr bin python from bs4 import beautifulsoup import csv import time import random import requests import sys ...

使用nodejs爬取資料

let requests require requests 傳送http請求 具體詳情 let fs require fs 檔案系統 具體詳情 let path require path 路徑 新增鏈結描述 const cheerio require cheerio 在nodejs中類似jq的 符號...