什么是爬蟲
一種自動獲取網(wǎng)絡(luò)頁面內(nèi)容的程序
網(wǎng)絡(luò)爬蟲也叫作網(wǎng)絡(luò)機(jī)器人复濒、網(wǎng)絡(luò)蜘蛛
是一種按照一定規(guī)則,自動地抓取網(wǎng)絡(luò)信息的程序或腳本
通用爬蟲
搜索引擎的爬蟲系統(tǒng)
追求大的爬行覆蓋范圍
聚焦爬蟲
針對某種內(nèi)容爬蟲
只對特定的網(wǎng)站進(jìn)行爬取
爬蟲的一般流程
- Step1-獲取網(wǎng)頁內(nèi)容:給一個(gè)網(wǎng)址發(fā)送請求,該網(wǎng)址會返回整個(gè)網(wǎng)頁的數(shù)據(jù)
- Step2-解析網(wǎng)頁內(nèi)容:從整個(gè)網(wǎng)頁數(shù)據(jù)中提取想要的數(shù)據(jù)
-
Step3-保存數(shù)據(jù):數(shù)據(jù)可保存在數(shù)據(jù)庫印荔、文件中
爬蟲能做什么
爬蟲的一般應(yīng)用場景
電商網(wǎng)站分析商品數(shù)據(jù)
社交網(wǎng)絡(luò)分析輿情動態(tài)
新聞文本挖掘行業(yè)動向
各類信息批量采集下載
爬蟲在科研中的應(yīng)用場景
快速追蹤最新文獻(xiàn)
? Request(獲取)+Beautiful Soup(解析)
? Biopython庫(Entrez模塊)械哟、pymed庫
? 利用第三方庫直接下載PDF
? 調(diào)用接口實(shí)現(xiàn)自動英譯漢
? ……
項(xiàng)目與基金熱點(diǎn)分析
? Selenium(獲取)+Beautiful Soup(解析)
? jiba等庫進(jìn)行自然語言分析獲得領(lǐng)域熱詞等分析
? ……
爬取生信數(shù)據(jù)
? Biopython處理多種生物信息學(xué)問題
? pysam處理基因組序列工具
? ……
Python爬蟲的優(yōu)勢
Python是用于爬蟲的最佳工具之一
? PHP、C/C++怜森、JAVA速挑、Python…等語言均可用于構(gòu)建爬蟲
? Python抓取網(wǎng)頁文檔的接口更加簡潔
? Python擁有豐富的第三方庫與爬蟲框架
? Python代碼簡潔、開發(fā)效率高
? Python良好的跨平臺支持
? ……
Python爬蟲常用庫
常用的請求庫
Urllib庫
? Python內(nèi)置的HTTP請求庫
? 一系列用于操作URL的功能
Requests庫
? 模擬瀏覽器操作
? 下載網(wǎng)頁內(nèi)容
Selenium庫
? 模擬人自動與網(wǎng)站交互
? 支持所有主流的瀏覽器
常用的解析庫
re庫
? Python內(nèi)置正則表達(dá)式模塊
? 解析速度較快
beautifulsoup庫
? 結(jié)構(gòu)化網(wǎng)頁數(shù)據(jù)
? 輕松獲取網(wǎng)頁內(nèi)容
lxml庫
? 輕松處理XML和HTML文件
? 支持XPath解析方式副硅,解析效率非常高
常用的數(shù)據(jù)存儲庫姥宝、爬蟲框架
pymysql
Python 實(shí)現(xiàn)的 MySQL 客戶端操作庫
pymongo
直接連接 mongodb 數(shù)據(jù)庫進(jìn)行查詢操作
Scrapy爬蟲框架
? 爬取網(wǎng)站數(shù)據(jù)
? 提取結(jié)構(gòu)性數(shù)據(jù)
總結(jié)
爬蟲的基本概念:
- 按照一定規(guī)則,自動獲取網(wǎng)絡(luò)頁面內(nèi)容的程序
- 獲取網(wǎng)頁內(nèi)容 恐疲、解析網(wǎng)頁內(nèi)容 腊满、保存數(shù)據(jù)
爬蟲的應(yīng)用場景: - 網(wǎng)站數(shù)據(jù)分析沮脖、社交輿情分析缩抡、行業(yè)動向洞察嗡贺、信息批量采集
- 追蹤最新文獻(xiàn)畸颅、分析基金項(xiàng)目故俐、爬取生信數(shù)據(jù)
Python爬蟲的優(yōu)勢:接口簡潔腮敌、第三方庫豐富膜钓、開發(fā)效率高桃煎、支持跨平臺
Python爬蟲常用庫: - 請求庫:urllib庫零蓉、Requests庫笤受、Selenium庫
- 解析庫:re庫、beautifulsoup庫壁公、lxml庫
- 數(shù)據(jù)存儲庫:pymysql庫感论、pymongo庫、Scrapy爬蟲框架