Python-Scrapy抓取百度數據並分析

抓取智聯招聘和百度搜索的數據並進行分析,使用visual studio編寫代碼mongodb和SQLServer存儲數據。使用scrapy框架結合 selenium爬取百度搜索數據,並進行簡要的數據的分析!!php

爬取前的頁面分析:

 打開百度搜索頁面,並查看網頁源代碼,問題便出現,沒法查看到頁面源代碼,以下,只是返回一個狀態說明,這時能夠肯定頁面數據是動態生成,常規的爬取行不通。html

在瀏覽器中進行調試分析,能夠發現須要定位使用的html元素,經過這一步至少能夠將如下兩個元素的XPATH或CSS Selector的表達式求解出來。html5

制定爬取方案

既然搜索頁面的內容是動態生成,常規的http請求後沒法獲取數據,針對這種問題的解決方法:java

l 經過抓包工具,進行對http請求進行分析,找到實際數據請求的js代碼後進行模擬請求獲取數據,這種方法耗時耗力,且是沒法適應頁面更改的狀況。python

l 經過瀏覽器框架請求,並編寫程序和瀏覽器通訊獲取數據分析,對於這種方法的選擇有不少,如在windows上能夠使用IE Browser控件,其餘的能夠使用其餘內核的瀏覽器,這種方法的缺點是速度較慢。git

l 這裏選取的方法是使用 Selenium + Phantomjs的方法,這個結合scrapy也算是較爲經典的一種方法。而且 Selenium + Phantomjs 也是做爲Web應用程序進行自動化測試的一套方案。github

l Selenium : Selenium 是一個用於Web應用程序測試的工具,能夠搭配主流瀏覽器進行使用,如 IE ,Chrome ,Firefox等web

l Phantomjs: 一個基於webkit內核的無頭瀏覽器,即沒有UI界面,即它就是一個瀏覽器,只是其內的點擊、翻頁等人爲相關操做須要程序設計實現。mongodb

編寫爬蟲代碼

 開始實際編寫代碼前,對爬取步驟的梳理。數據庫

自動填寫搜索關鍵字 – 自動觸發搜索功能 – 抓取頁面搜索數據(不包含廣告推廣項) – 分頁跳轉 …..
 

輸入關鍵字並進行查找,對關鍵字「IT教育」進行搜索

 

對第一頁右邊欄的「相關機構」(以下圖)進行抓取(首先須要觸發「展開」事件)

 

 

 

在開啓爬蟲,進行爬取數據的,爬取結果以下:

 

分析數據 通過抓取,共抓取了76頁,抓取的數據以下: Json文件 [[圖片上傳中 在SQLServer數據庫中。

對抓取數據進行關鍵字提取,並製做對應的標籤雲,獲得的標籤雲圖爲.分析工具爲python,經過jieba分詞和pycloundtag兩個模塊進行,獲得的分析結果以下:

分析搜索「IT教育」獲得結果得出的初步結論,出現次數較多:

n 城市: 北京 深圳 杭州 武漢 長沙 等

n 機構: 北大青鳥 達內 傳智播客 等

n 語言: java php html5 等

github: https://github.com/Shadow-Hunter-X/Crawl-Recruit-Data

更多:https://blue-shadow.top/