用js寫爬蟲

2021-10-02 11:58:32 字數 1820 閱讀 5440

http/https/axios爬取api介面

後端渲染模式(ejs,jsp,thymeleaf…):伺服器渲染好頁面,再交給前端展示

const axios =

require

('axios'

)const

=await axios.

get(url)

request/crawl/superagent爬取html

前端渲染模式(vue,react…):伺服器返回空頁面,頁面資料,js檔案,再由前端完成渲染。無法爬取

let request =

require

('request'

)request

(url,

(err, response, body)

=>

) console.

log(titles)

})

puppeteer控制chromium(為所欲為)

可以通過api控制瀏覽器行為(實現爬蟲,自動簽到,網頁截圖,生成pdf,自動化測試等)

const browser =

await puppeteer.

launch()

const page =

await browser.

newpage()

await page.

goto

('')const titles =

await page.

$$eval

('a.title',as

=>

)fs.

writefilesync

('titles.txt'

, titles,

'utf8'

)await browser.

close

()

持久化建立索引

連線資料庫

資料編碼問題(iconv-lite)

request在內部buffer轉字串預設utf8編碼(例如gbk擴充套件了gb2312,gb180擴充套件了gbk)

const iconv =

require

('iconv-lite'

)// cheerio像jquery一樣獲取html元素

const cheerio =

require

('cheerio)

request(,

(err,response,body)

=>)}

)

資料訂閱

cron 與 org.springframework.scheduling.annotation.scheduled 類同

cron週期性執行

const

=require

('cron'

)new

cronjob

('* * * * * *',(

)=>).

start

()

例如每個月8號晚上10點執行一次: 『0 0 22 8 * *』

防止程式退出

node.js大部分情況非同步io的錯誤無法被trycatch捕獲,接下來會交給uncaughtexception函式處理,若沒有註冊則會導致程式退出(node只有乙個執行緒)

監聽未知錯誤

process.on(

'uncaughtexception'

, error =>

)

程序管理(pm2)

用python寫爬蟲(一)初識爬蟲

爬蟲又被稱之為網路蜘蛛 網路機械人等,簡單來說就是模擬客戶端傳送網路請求,接收請求響應,按照一定的規則自動的抓取網際網路資訊的程式。1.從個人角度來說,爬蟲可以做我們的生活助手。2.從商業角度來說,爬蟲能實現巨大的商業價值。網路爬蟲根據系統結構和開發技術大致可以分為四種型別 通用網路爬蟲 聚焦網路爬...

用python寫爬蟲簡單嗎

所謂網路爬蟲,通俗的講,就是通過向我們需要的url發出http請求,獲取該url對應的http報文主體內容,之後提取該報文主體中我們所需要的資訊。下面是乙個簡單的爬蟲程式 http基本知識 當我們通過瀏覽器訪問指定的url時,需要遵守http協議。本節將介紹一些關於http的基礎知識。http基本流...

用Python寫爬蟲 1 背景介紹

在爬取 之前,需要對 規模和結構了解,常常會借助 自身的robot.txt以及sitemap檔案,還有比如外部工具 google搜尋和whois。1.檢查robot.txt 該檔案可以讓爬蟲了解爬取該 時存在哪些限制,以及一些 結構線索,通常如下結構 例1 禁止所有搜尋引擎訪問 的任何部分 user...