1. 程式人生 > >Python爬取58同城招聘資訊

Python爬取58同城招聘資訊

微信搜尋關注“程式設計師旅途”公眾號,檢視更多

環境要求:

(1)python3環境
(2)requests模組:是一個很實用的Python HTTP客戶端庫,安裝指令pip install requests
(3)BeautifulSoup模組:提供一些簡單的、python式的函式用來處理導航、搜尋、修改分析樹等功能。它是一個工具箱,通過解析文件為使用者提供需要抓取的資料,安裝指令pip install BeautifulSoup
(4)lxml模組:解析HTML程式碼,pip install lxml

具體爬取過程

以杭州的軟體工程師招聘資訊為例
第一步:分析url
通過訪問招聘資訊的頁面,發現共有九頁內容,通過訪問幾頁內容發現url是規律的,具體如下
第一頁:http://hz.58.com/ruanjiangong/pn1/
第二頁:http://hz.58.com/ruanjiangong/pn2/
第三頁:http://hz.58.com/ruanjiangong/pn3/

第九頁:http://hz.58.com/ruanjiangong/pn9/
發現url的規律之後,我們就可以輕輕鬆鬆的通過for迴圈爬取每一頁的內容了。
第二步:分析原始碼以及如何獲取指定資料
下面以第一頁為例分析網頁原始碼從而獲取指定資料(假設我們只需要知道公司位置/具體職位/月薪/公司名稱/福利/公司招聘網址):
我們通過檢視原始碼發現每一條招聘資訊對於一個li標籤,而每個li中又通過div來分塊,這樣我們可以通過li的class屬性值來獲取這一系列標籤,然後通過div的class屬性值來獲取某一區域的內容,接下來我們需要通過按標籤一級一級來進行定位來從每個區域提取上述列出的內容。

下面以獲取某公司位置為例,滑鼠放在“西湖區”右擊選擇檢查(或檢視元素)

這樣我們可以在每個li標籤中通過篩選每級的class值來獲取公司位置,即位置獲取方式是通過"div.item_con span.address"來獲取,對應的python程式碼為:

address = item.select("div.item_con span.address")[0].text  #select()返回的是list型別,text是獲取標籤的內容

同理,我們可以得出

name = item.select("div.item_con span.name")[0].text
salary = item.select("div.item_con p.job_salary"
)[0].text welfare = item.select("div.item_con div.job_wel")[0].text company = item.select("div.item_con div.comp_name a.fl")[0].text href = item.select("div.item_con div.comp_name a.fl")[0].get("href") #get()是通過屬性名來獲取屬性值

第三步:編寫程式碼
根據第二步得出的資料的獲取方式,接下來就是程式碼實現了

import requests
import time
from bs4 import BeautifulSoup
url = "http://hz.58.com/ruanjiangong/pn{}"
def spider():    for i in range(9):        req = requests.get(url.format(str(i + 1)))        req.encoding = "utf-8"  #設定成網頁的編碼        soup = BeautifulSoup(req.text, "lxml")        items = soup.select("li.job_item")        for item in items:            address = item.select("div.item_con span.address")[0].text  #select()返回的是list型別            name = item.select("div.item_con span.name")[0].text            salary = item.select("div.item_con p.job_salary")[0].text            if len(item.select("div.item_con div.job_wel")) > 0:                welfare = item.select("div.item_con div.job_wel")[0].text            company = item.select("div.item_con div.comp_name a.fl")[0].text            href = item.select("div.item_con div.comp_name a.fl")[0].get("href")            print("%s\t%s\t%s\t%s\t%s\t%s"%(address, name, salary, company,welfare,href))        time.sleep(2) if __name__ == '__main__':    spider()

第四步:執行獲取資料
執行程式碼,輸出所需的資料:

相關推薦

Python58招聘資訊

微信搜尋關注“程式設計師旅途”公眾號,檢視更多 環境要求: (1)python3環境 (2)requests模組:是一個很實用的Python HTTP客戶端庫,安裝指令pip install requests (3)BeautifulSoup模組:提供一些簡單的、pyth

python58全部二手商品資訊(轉轉網)

python_58ershou python+beautifulsoup多執行緒爬取58同城二手全部商品資訊,並在jupyter上將資料視覺化 專案主程式在58_index中: 建立mango資料庫表 #連線MongoDB資料庫 client

Python爬蟲學習_多程序58

思路:有多個頻道(類別),每個頻道下有多個商品連結,每個商品都有詳情頁。先將頻道連結中的多個商品連結爬下來放入資料庫中,再從資料庫中取出來每一個商品詳情頁連結,進行詳情頁中的資訊爬取 首先是channel_extact.py,爬取不同頻道的連結 from bs4 impo

58的二手房資訊

給定任意一個58同城的詳情二手房資訊.會遞迴爬取房源下的推薦資訊,直到被封(使用代理ip即可避免) github地址:https://github.com/zhucaidong/house_anqin

使用爬蟲scrapy庫58出租房的聯絡方式地址

一  .建立一個爬蟲工程   scrapy startproject  tongcheng   #建立一隻爬蟲   scrapy genspider   zufang   域名(xa.58.com/zufang/) 二.配置setting檔案

python拉勾網招聘資訊並以CSV檔案儲存

爬取拉勾網招聘資訊 1、在網頁原始碼中搜索資訊,並沒有搜到,判斷網頁資訊使用Ajax來實現的 2、檢視網頁中所需的資料資訊,返回的是JSON資料; 3、條件為北京+資料分析師的公司一共40087家,而實際拉勾網展示的資料只有 15條/頁 * 30頁 = 450條,所以需要判斷

Python拉勾網招聘資訊存入資料庫

先抓包分析我們想要獲取的資料,很明顯都是動態資料,所以直接到Network下的XHR裡去找,這裡我們找到具體資料後,就要去尋分析求地址與請求資訊了。還有需要提交的表單資訊分析完畢之後,我們就可以開始寫我們的爬蟲專案了。一.編寫Itemitem編寫比較簡單# 拉鉤職位資訊 cl

Python拉勾網招聘資訊

此程式碼執行建議Python3,省卻中文編碼的麻煩 遇到的幾個問題: (1)拉鉤網的資料是通過js的ajax動態生成,所以不能直接爬取,而是通過post’http://www.lagou.com/jobs/positionAjax.json?needAddt

Python拉勾網招聘資訊並可視化分析

需求: 1:獲取指定崗位的招聘資訊 2:對公司地區,公司待遇,學歷情況,工作經驗進行簡單分析並可視化展示 視覺化分析: 公司地區:柱狀圖,地圖 公司待遇:雲圖 公司-學歷情況:餅圖 公司工作經

python拉鉤網招聘資訊

拉鉤網網址為:https://www.lagou.com/點選F12進入控制檯觀察結構,發現所有的招聘內容都在此json檔案中:注意headers中的請求url以及請求方法:還有表單資料:獲取以上資訊後,基本就可以開始爬取工作,注意,拉鉤網有反爬機制,所以需要使用cookie

scrapy58二手房問題與對策

failure 初始 sin 失敗 handler a10 name lba rom 測試環境: win10,單機爬取,scrapy1.5.0,python3.6.4,mongodb,Robo 3T 其他準備: 代理池:測試環境就沒有用搭建的flask抓代理,因為我找

Python 3.6 優雅的獵聘網招聘資訊

1. 通過三種方式抓取欄位:       招聘標題 待遇 地區 學歷要求 經驗 公司名稱 公司的行業 職位描述2. 效果預覽        3. 注意事項    * 利用xpath或者其它方式選取節點時,需要注意判斷是否為None,如果在後面呼叫.strip()等方法肯定會報

Python scrapy 拉勾網招聘資訊

週末折騰了好久,終於成功把拉鉤網的招聘資訊爬取下來了。現在總結一下! 環境: windows 8.1 + python 3.5.0 首先使用 scrapy 建立一個專案: E:\mypy> scrapy startproject lgjob 建立後目錄結構:

實訓專案(一)——58出租資訊(上)

本節課將利用前面學習的基礎知識,實現58同城出租資訊抓取。爬蟲整體流程58同城抓取流程進入成都小區頁面,確定抓取目標 觀察頁面,獲取各行政區的連結 分行政區抓取各小區的URL 進入各小區詳情頁面,抓取名字、價格、地址、年份等資訊 抓取小區二手房頁面第一頁的價格,在管道中求該小

Python拉鉤網招聘職位資訊

本文實現自動爬取拉鉤網招聘資訊,並將爬取結果儲存在本地文字中(也可以將資料存入資料庫) 使用到的Python模組包(Python3): 1.urllib.request 2.urllib.parse 3.json 簡單分析: 1.在向伺服器傳送請求,

利用高德API + Python鏈家網租房資訊 01

看了實驗樓的專案發現五八同城爬取還是有點難度所以轉戰鏈家 實驗程式碼如下 from bs4 import BeautifulSoup from urllib.request import urlopen import csv url = 'https://gz.lia

Python爬蟲實戰--58二手商品爬蟲

嗚嗚~~本來說今天就把程式碼上傳上來,可惜了,還是有點差錯,今天估計趕不上啦!明天加油吧! 今天我們一起來好好分析一下,看看我們該如何去爬去58二手商品。 這裡我們分成四步來完成本次任務~ 目標站點分析 目標URL:http://bj.58.com/sale.shtml 第一步:主頁分析

HttpClient拉勾網招聘資訊

1.匯入jar包 <dependency>       <groupId>org.apache.httpcomponents</groupId>       <artifactId>htt

python豆瓣電影Top250的資訊

python爬取豆瓣電影Top250的資訊 2018年07月25日 20:03:14 呢喃無音 閱讀數:50 python爬取豆瓣電影Top250的資訊。 初學,所以程式碼的不夠美觀和精煉。 如果程式碼有錯,請各位讀者在評論區評論,以免誤導其他同學。 (

python網易雲歌曲資訊及下載連結並簡單展示

我們選取的爬取目標是歌單這一塊兒 chrome瀏覽器 f12抓包 經過簡單的解析,拿到歌曲分類名字 create_table_sql = 'create table ’ + i + ‘(id int auto_increment primary key,song_name varch