前言
嗨嘍~大家好呀,這里是魔王吶
現在,很多人不是在找作業的途中就是在找作業的路上(我的廢話文學??)
所以我今天來采集一下招聘網站,讓我們來看看找作業主要要學會什么?
環境使用:
- Python 3.8
- Pycharm ---> 漢化插件 translation
模塊使用:
- requests >>> pip install requests
- re
- json
- csv
如果安裝python第三方模塊:
-
win + R 輸入 cmd 點擊確定, 輸入安裝命令 pip install 模塊名 (pip install requests) 回車
-
在pycharm中點擊Terminal(終端) 輸入安裝命令
如何配置pycharm里面的python解釋器?
- 選擇file(檔案) >>> setting(設定) >>> Project(專案) >>> python interpreter(python解釋器)
- 點擊齒輪, 選擇add
- 添加python安裝路徑
pycharm如何安裝插件?
- 選擇file(檔案) >>> setting(設定) >>> Plugins(插件)
- 點擊 Marketplace 輸入想要安裝的插件名字 比如:翻譯插件 輸入 translation / 漢化插件 輸入 Chinese
- 選擇相應的插件點擊 install(安裝) 即可
- 安裝成功之后 是會彈出 重啟pycharm的選項 點擊確定, 重啟即可生效
基本流程思路: <通用>
解答、教程可加Q:832157862免費獲取哦~
一. 資料來源分析
- 確定需求, 明確采集資料內容是什么?
- 通過開發者工具進行抓包分析, 分析資料來源, 請求那個url地址可以獲取相關資料內容
I. F12或者滑鼠右鍵點擊檢查 選擇network 重繪網頁
II. 通過關鍵字 搜索找相應資料包
二. 代碼實作步驟
- 發送請求, 對于分析得到url地址發送請求 <模擬瀏覽器對于url發送請求>
- 獲取資料, 獲取response回應資料 ---> 服務器回傳回應資料
- 決議資料, 提取我們想要資料內容 ---> 招聘基本資訊
- 保存資料, 保存表格里面
- 多頁采集, 多頁資料采集
代碼
# 匯入資料請求模塊 ---> 第三方模塊 需要 pip install requests 匯入模塊沒有使用 灰色 import requests # 匯入正則模塊 ---> 內置模塊 不需要安裝 import re # 匯入json ---> 內置模塊 不需要安裝 import json # 匯入格式化輸出模塊 ---> 內置模塊 不需要安裝 import pprint # 匯入csv模塊 import csv # 匯入時間模塊 import time # 匯入隨機模塊 import random 原始碼、解答、教程可加Q裙:832157862 # 創建檔案 f = open('python招聘10頁.csv', mode='a', encoding='utf-8', newline='') csv_writer = csv.DictWriter(f, fieldnames=[ '職位', '公司名', '薪資', '城市', '經驗', '學歷', '公司型別', '公司規模', '公司領域', '福利待遇', '發布日期', '公司詳情頁', '職位詳情頁', ]) # 寫入表頭 csv_writer.writeheader() """ 1. 發送請求, 對于分析得到url地址發送請求 <模擬瀏覽器對于url發送請求> 模擬瀏覽器 ---> headers 在開發者工具里面headers下面的 requests headers里面 請求頭, 字典資料型別, 要構建完整鍵值對 <Response [200]> 說明對于url地址發送請求成功了, 但是不一定得到你想要的資料 被反爬, 狀態碼可能還是200, 但是回傳資料不是你想要的內容 """ for page in range(1, 11): print(f'----------------正在采集第{page}頁資料內容----------------') time.sleep(random.randint(1, 2)) # 確定url地址 --> 可以直接復制 url = f'https://search.51job.com/list/010000%252C020000%252C030200%252C040000%252C090200,000000,0000,00,9,99,python,2,{page}.html' # 模擬瀏覽器 headers 請求頭 偽裝 headers = { # User-Agent 用戶代理, 表示瀏覽器基本身份標識 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36' } # 發送請求 使用什么請求方式, 取決于開發者工具里的內容 response = requests.get(url=url, headers=headers) # <Response [200]> 回應物件 200 狀態碼 請求成功 print(response) # 獲取資料, 獲取服務器回傳回應資料---> 獲取文本資料 print(response.text) """ 決議資料 ---> 提取我們想要資料內容 決議方法比較多: re css xpath json決議.... 如何選擇方法 根據回傳資料型別以及我想要資料內容情況 re.findall() 呼叫re模塊里面findall方法 通過re模塊找到所有我們想要資料內容 ---> 告訴它去哪里找, 找什么樣資料 正則匹配提取出來資料, 回傳串列 ---> """ # 提取招聘資料 re.findall() 原始碼、解答、教程可加Q裙:832157862 html_data = re.findall('window.__SEARCH_RESULT__ = (.*?)</script>', response.text)[0] # 把字串資料轉成json字典資料 json_data = json.loads(html_data) # print 列印字典資料, 一行展示 pprint.pprint 列印字典資料型別, 格式化展開的效果 print(json_data) pprint.pprint(json_data) # 字典取值 ---> 根據鍵值對取值 根據冒號左邊的內容[鍵], 提取冒號右邊的內容[值] # for回圈遍歷 把串列里面資料一個一個提取出來 for index in json_data['engine_jds']: # 提取資料, 用字典 保存內容 學歷是敲門磚, 技術才是鐵飯碗.... 畢業出來 3500 dit = { '職位': index['job_name'], '公司名': index['company_name'], '薪資': index['providesalary_text'], '城市': index['workarea_text'], '經驗': index['attribute_text'][1], '學歷': index['attribute_text'][-1], '公司型別': index['companytype_text'], '公司規模': index['companysize_text'], '公司領域': index['companyind_text'], '福利待遇': index['jobwelf'], '發布日期': index['issuedate'], '公司詳情頁': index['company_href'], '職位詳情頁': index['job_href'], } # 寫入資料 csv_writer.writerow(dit) print(dit)
尾語
成功沒有快車道,幸福沒有高速路,
幸福是可以通過學習來獲得的,盡管它不是我們的母語,
——勵志語錄
本文章到這里就結束啦~感興趣的小伙伴可以復制代碼去試試哦
對啦!!記得三連哦~ ?? 另外,歡迎大家閱讀我往期的文章呀~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/499416.html
標籤:Python
上一篇:小白之Python基礎(二)
