3 04 簡易爬蟲

2022-07-29 04:36:13 字數 1629 閱讀 6519

反爬蟲步驟

1.引入http模組

const http = require( 'http' )
2.複製node.js官網,http.get()

3.複製node.js官網,const options()放在http.get()上面

4.將http.get()中的路徑換成 options注意這不是字串,所以不用單引號。

5.找到要爬取的**,在控制台的network中找到doc,然後重新整理會有乙個資料夾,資料夾內就是要的資料;點選最左邊的headers,下拉找到general中的request url,複製其中的url。

6.在options物件中修改資訊,hostname就是網域名稱(不帶http和結尾斜槓的純網域名稱),path就是com/後面的路徑,如果沒有就留空,method為get請求,因為是http.get(),上下文要一致,headers複製acc開頭的控制台中整個request headers**新增到裡面,最後的content-length值改成0;

並將:後面的值加上單引號,後面加逗號。:前面的帶-橫槓的也加上單引號。

7.檢視控制台資料型別,如果是text型別的,要刪除報錯程式。(let reeor至return部分)

8.刪除try中的josn處理程式,換成consolelog(rawdata)

*9如果請求的**是https協議的,所有http**都要換成https,埠號改成443,option裡的headers要改成header;

10.輸入ls檢視檔案目錄,輸入命令:node+空格+檔名 執行,會得到一段資料。

11.接下來進行資料清洗獲得想要的資料 用第三方外掛程式【模組】 cheerio

12.先npm init -y 出現package.js檔案用於記錄專案依賴

13.cnpm i cheerio -s

14.引入模組

const cheerio = require( 'cheerio' )
15.在try中引入**,並刪除console.log(rawdata)

const $ = cheerio.load( rawdata )

$('標籤.類名 a').each( function ( item ) )

const req=http.get() 給模組定義乙個常量

req.end() 再最後新增

利用原生**建立乙個伺服器,參考04.原生**創造伺服器;

將從頭開始至http.get之前的**複製貼上到原生伺服器上層函式前,並把重複的變數刪除。

把剩下的http.get的部分複製貼上替換掉原生伺服器的response.write(),response.end()語句。

將console.log( $( this ).text() ) 替換成 response.write()

在在函式下加上response.end()

執行檔案即可在頁面輸出爬到的資料

簡易文字爬蟲

正規表示式 1 使用re.findall 所有符合條件的 一般查詢列表結果就是所獲得值 re.search 一條符合記錄的 通過match物件內的group編號或命名,獲得對應的值 title re.research html,re.s group 1 能包括換行符 使用sub 替換 實現換頁功能 ...

nodejs簡易爬蟲

我的爬蟲程式是用nodejs寫的,因為最近在學這個東西,其中使用了express框架,以及cheerio和superagent兩個模組。cheerio模組是nodejs處理html內容的神器,例如var cheerio.load html 將頁面的html內容載入下來後,便可使用jquery語法進行...

nodejs 簡易爬蟲

用nodejs編寫爬蟲跟其他語言一樣,比較簡單,比較各個語言標準庫都差不多,主要就是抓取頁面,然後分析dom節點,獲取資料。requests 經典的請求庫,cherrio 像jquery一樣解析dom的庫。這裡用csdn舉例。var request require request var promi...