網絡爬蟲抓取個人信息,java抓取網頁數據_Golang丨Java丨Python爬蟲實戰—Boss直聘網站數據抓取

 2023-11-19 阅读 27 评论 0

摘要:我們分別通過Golang、Python、Java三門語言,分別實現對Boss直聘網站的招聘數據進行爬取。首先打開Boss直聘網站:然后我們在職位類型中輸入Go或者Golang關鍵字:網絡爬蟲抓取個人信息、然后我們可以看到一個列表,和Go語言相關的各種招聘職位,

c463dfc830762437cabd6cb28abb9797.png

我們分別通過Golang、Python、Java三門語言,分別實現對Boss直聘網站的招聘數據進行爬取。

首先打開Boss直聘網站:

ec287721e9886a035df11494409c0dbc.png

然后我們在職位類型中輸入Go或者Golang關鍵字:

網絡爬蟲抓取個人信息、

3029262e82b8712afa6f868835986e2c.png

然后我們可以看到一個列表,和Go語言相關的各種招聘職位,還可以不停的下一頁。。

那我們現在就來爬取這些數據:我們比較關心這里的職位名稱,薪資待遇,工作地點,對于工作經驗的要求,學歷的要求,公司名稱,公司類型,公司發展階段,公司規模等等。。

一、分析頁面

我們通過分析頁面的結構發現,頁面的職位列表,其實都位于一個ul中的li里,每個頁面有30個職位,所以有30個li標簽:

f0ce2077893a9dcb7555b793871df1db.png

打開這個li標簽后,里面是div標簽嵌套,包括了招聘信息和公司信息:

java可以寫爬蟲嗎?

9d0ad13db9690d506f842751d91a1de0.png

接下來我們就可以通過代碼來爬取這些數據了,首先我們要確定要爬取的第一個url:

https://www.zhipin.com/c101010100/?query=Go&page=1

一共有10頁數據,分別通過page=1、2、3。。。來實現,

所以接下來要爬取的url:

https://www.zhipin.com/c101010100/?query=Go&page=2

java爬蟲是什么。https://www.zhipin.com/c101010100/?query=Go&page=3

。。。

https://www.zhipin.com/c101010100/?query=Go&page=10

爬取到的數據,我們也不需要處理,打印輸出即可。。因為我們只是想看一下幾門語言爬取數據在實現上有什么不同。。

好了,現在讓我們來開開心心的擼代碼吧。。

二、Golang語言實現

使用Go語言來爬取這個頁面,github里搜了下,發現goquery這個爬蟲包用的人還挺多的,7000多個star,而且是BSD開源協議,于是毫不猶豫的拿來用了。

python爬蟲教程、

0c06ecb04fe09cdd3b1bd5cc9ba12818.png

goquery的使用還是比較簡單,按照文檔說明一步一步來就可以了:

首先:需要安裝

localhost:~ ruby$ go get github.com/PuerkitoBio/goquery

其次:就是去看看goquery的API,先了解一下常用的方法:

https://godoc.org/github.com/PuerkitoBio/goquery

76c1a7f39f9c569a51374eaad031e9a9.png

javascript爬取網頁數據?

48e11a71e663415119edde3234023b48.png

然后就可以開始寫代碼了:

打開Goland,新建一個go文件:

package 

一共也就這些代碼,加上注釋78行。

然后可以運行:(注:由于執行結果過長,為增加可閱讀性部分執行結果已經刪除處理

GOROOT=/usr/local/go #gosetup
GOPATH=/Users/ruby/go #gosetup
/usr/local/go/bin/go build -i -o /private/var/folders/kt/nlhsnpgn6lgd_q16f8j83sbh0000gn/T/___go_build_boss_go /Users/ruby/go/src/boss/boss.go #gosetup
/private/var/folders/kt/nlhsnpgn6lgd_q16f8j83sbh0000gn/T/___go_build_boss_go #gosetup
============== 千鋒教育Go語言開發教學部 職位信息分析 ================
第 0 頁的數據:
職位序號:第1個職位
職位名稱:Golang
職位薪酬:25k-50k
工作地點:北京  
職位所需工作經歷:5-10年
學歷要求:本科
公司名稱:京東集團
公司類型:電子商務
公司發展階段:已上市
公司規模:10000人以上
================================================================職位序號:第2個職位
職位名稱:Golang
職位薪酬:20k-35k
工作地點:北京 朝陽區 亮馬橋
職位所需工作經歷:3-5年
學歷要求:本科
公司名稱:平安科技
公司類型:互聯網
公司發展階段:不需要融資
公司規模:1000-9999人
================================================================職位序號:第3個職位
職位名稱:Golang
職位薪酬:20k-30k
工作地點:北京 海淀區 知春路
職位所需工作經歷:3-5年
學歷要求:本科
公司名稱:騰訊科技(北京)公司
公司類型:移動互聯網
公司發展階段:已上市
公司規模:10000人以上
================================================================職位序號:第4個職位
職位名稱:Golang
職位薪酬:20k-40k
工作地點:北京 海淀區 中關村
職位所需工作經歷:3-5年
學歷要求:本科
公司名稱:曠視科技
公司類型:移動互聯網
公司發展階段:C輪
公司規模:1000-9999人
================================================================職位序號:第5個職位
職位名稱:Golang
職位薪酬:20k-40k
工作地點:北京 海淀區 上地
職位所需工作經歷:3-5年
學歷要求:本科
公司名稱:Aibee
公司類型:互聯網
公司發展階段:A輪
公司規模:100-499人
================================================================
.
省略
.
注:由于執行結果過長,為增加可閱讀性部分執行結果已經刪除處理
.
省略
.
================================================================
職位序號:第25個職位
職位名稱:Golang
職位薪酬:20k-35k
工作地點:北京 海淀區 上地
職位所需工作經歷:3-5年
學歷要求:本科
公司名稱:滴滴出行
公司類型:移動互聯網
公司發展階段:D輪及以上
公司規模:1000-9999人
================================================================職位序號:第26個職位
職位名稱:高級軟件工程師(Golang)
職位薪酬:30k-50k
工作地點:北京 海淀區 五道口
職位所需工作經歷:3-5年
學歷要求:學歷不限
公司名稱:魔門塔科技
公司類型:計算機軟件
公司發展階段:B輪
公司規模:500-999人
================================================================職位序號:第27個職位
職位名稱:京東云golang后端開發工程師
職位薪酬:20k-40k
工作地點:北京 朝陽區 小營
職位所需工作經歷:5-10年
學歷要求:本科
公司名稱:京東集團
公司類型:電子商務
公司發展階段:已上市
公司規模:10000人以上
================================================================職位序號:第28個職位
職位名稱:Golang開發工程師
職位薪酬:15k-25k
工作地點:北京 海淀區 航天橋
職位所需工作經歷:1-3年
學歷要求:本科
公司名稱:央視網
公司類型:互聯網
公司發展階段:不需要融資
公司規模:1000-9999人
================================================================職位序號:第29個職位
職位名稱:Golang開發工程師
職位薪酬:5k-9k
工作地點:北京 海淀區 大鐘寺
職位所需工作經歷:1年以內
學歷要求:本科
公司名稱:卿燁科技
公司類型:互聯網
公司發展階段:A輪
公司規模:100-499人
================================================================職位序號:第30個職位
職位名稱:Golang開發工程師
職位薪酬:30k-60k
工作地點:北京 海淀區 萬柳
職位所需工作經歷:3-5年
學歷要求:本科
公司名稱:費曼咨詢
公司類型:互聯網
公司發展階段:未融資
公司規模:0-20人
================================================================app elapsed: 11.074699684sProcess finished with exit code 0

我們可以看到一共花費了11s的時間,但是我們為了防止boss反爬,在程序中設置了,每隔1s中再爬取下個頁面,所以減掉9s,真正的爬數據的時間也就2s:

java抓取網頁數據。

6c9c0ce2974a7d3f208dc44edcf39c95.png

三、Python語言實現

python在爬蟲方面還是比較強大的,我選了一個最時髦的框架:scrapy

這個框架雖然說功能很強大,但是用起來還稍微有點麻煩的,不說別的,創建項目就得用終端的scrapy命令創建,而不是IDE直接創建。

所以打開終端,進入python的workspace,輸入以下命令:

localhost:~ ruby$ scrapy startproject bossspider

然后通過Pycharm打開這個項目:

先編寫items.py文件,就是我們要爬取的數據,需要先在此處定義,然后每一條數據就是一個item:

# -*- coding: utf-8 -*-

java爬取數據?然后我們打開spiders目錄:新建一個py文件:bossspider.py,這里寫爬取數據的代碼:

# -*- coding: utf-8 -*-

然后修改setting.py文件,設置請求頭等等:

# -*- coding: utf-8 -*-

為了能夠在爬取數據的時候,統計程序耗時,我們還可以修改scrapy的包文件:corestats.py

def 

然后運行一下程序,打開終端,輸入以下命令:

hanru-3:bossspider ruby$ scrapy crawl bossspider

或者:

hanru-3:bossspider ruby$ scrapy crawl bossspider -o boss.json

表示把爬取的數據導出到boss.json文件中。

爬蟲數據抓取。

178d2a500f67cb51ad497fccc3834bdc.png

共耗時12s,同樣也是減掉9s的睡眠時間,耗時3s。

四、Java語言實現

Java的爬蟲,我們可以通過Jsoup庫來輔助我們實現Java語言的編程實現)。

先創建Java工程,然后下載Jsoup.jar源碼庫并添加到Java工程中的libs中,并添加成為library。

接著創建Item類,因為Java是面向對象的語言,所以我們先創建一個類,用于封裝下載后的數據:

package 

然后我們創建一個帶main()的java文件,來編寫爬蟲的代碼:

package 

java實現爬蟲。因為我們對數據沒有什么處理,所以邊封裝就邊打印查看了。

fa1c1501b683cd1b55ab8861d1ab2642.png

這個速度還是有點意思的。。

五、對比

從代碼量上可以看得出來Go語言是最少的,尤其的簡潔。。

從運行速度上可以看出來Go語言是執行最快的,耗時最短。。

然后每個語言也都有著不同的優缺點,所以也有著各自的發展領域。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/182793.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息