生苦短,我用Python
1、什麼是MongoDB
MongoDB是一個高效能,開源,無模式的文件型資料庫
MongoDB將資料儲存為一個文件,資料結構由鍵值(Key=>value)對組成
2、MongoDB相關安裝
Windows的安裝方法:可以借鑑小歪老師的知乎專欄:MongoDB及視覺化工具的安裝中給出了詳細的MongoDB資料庫、視覺化工具RoboMongo和MongoDB的PyCharm外掛--Mongo Plugin的安裝步驟和方法,可按照步驟安裝並測試連線,本人也是按照該教程一步一步操作的。實驗都是成功的。
3、Python用於操作MongoDB的第三方庫pymongo安裝:
我這裡是已經安裝過了,所以是這樣的提示,如果未安裝,則是大致提示你安裝成功的英文。
這裡說下pip,我剛開始使用pip安裝包的時候,一直提示未能識別pip,最後我找到python的安裝目錄下:C:\Users\XXXX\XXX\XXX\XXX\Python\Python35\Scripts下,shift+滑鼠右擊,在此處開啟命令視窗,再使用pip install pymongo就成功了。
需要這樣使用pip是因為我沒有設定環境變數的原因。如果每次都是這樣使用pip安裝包很麻煩,所以如果你想每次隨便在哪裡開啟cmd.exe都能pip安裝包,則需要配置下環境變數:
配置流程:我的電腦(或計算機)-->右鍵屬性-->高階系統設定-->環境變數-->系統變數-->path-->點選編輯-->將在剛才shift+右鍵地方的地址複製到裡面,在隨便在一個地方開啟cmd.exe,輸入pip都可以安裝包了。
4、爬取拉鉤網爬蟲工程師資料並儲存到MongoDB中
1、分析網頁:想要爬取一個網站,首先必須去分析改網頁的請求結構和返回結果結構。
由上圖分析可知:請求url和請求方式post。
由上圖可知:請求所需要的Cookie、Referer、和User-Agent。這些都是請求需要的引數。
點選response,可以看到該請求返回值,這樣看不方便,我們可以全選複製,用json轉換工具看一下:
由上圖分析可知請求的引數:first:是否是第一頁,pn:當前頁數,kd:搜尋關鍵字
由截圖分析可知,返回結果中content-->positionResult-->result中資料是我所需要的。
程式碼實現:
import requests
from pymongo import MongoClient
import time
from fake_useragent import UserAgent
client=MongoClient()
db=client.lagou
lagou=db.Reptile #建立Reptile集合,用於儲存爬取到的資料集合
headers={
'Cookie':'',#此處寫入你分析所得的Cookie
'Referer':''#此處寫入你分析所得的Referer
}
def get_job_info(page,kd):#加入一個職位引數kd
for i in range(page):
url=''#此處寫入你分析後所得的請求url
payload={
'first':'true',#是否是第一頁引數
'pn':i,#當前頁數。起翻頁作用
'kd':kd #關鍵字
}
ua=UserAgent()#定義生成隨機User-Agent的例項物件
headers['User-Agent']=ua.random #使用fake-Agent隨機生成User-Agent,新增到headers
response=requests.post(url,data=payload,headers=headers)#獲取請求結果
if(response.status_code==200):
job_json=response.json()['content']['positionResult']['result']#取出需要的資料
lagou.insert(job_json)#儲存到MongoDB資料
else:
print('請求錯誤!')
print('正在爬取'+str(i+1)+'頁的資料...')
if __name__=='__main__':
get_job_info(7,'爬蟲')複製程式碼
MongoDB儲存資料成功後的結構如下圖 所示: