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...