欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python使用requests庫爬取拉勾網(wǎng)招聘信息的實現(xiàn)

 更新時間:2020年11月20日 14:44:10   作者:周少欽  
這篇文章主要介紹了python使用requests庫爬取拉勾網(wǎng)招聘信息的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

按F12打開開發(fā)者工具抓包,可以定位到招聘信息的接口

在這里插入圖片描述

在請求中可以獲取到接口的url和formdata,表單中pn為請求的頁數(shù),kd為關請求職位的關鍵字

在這里插入圖片描述

在這里插入圖片描述

使用python構建post請求

data = {
  'first': 'true',
  'pn': '1',
  'kd': 'python'
}

headers = {
  'referer': 'https://www.lagou.com/jobs/list_python/p-city_0?&cl=false&fromSearch=true&labelWords=&suginput=',
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}

res = requests.post("https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false", data=data,headers=headers)
print(res.text)

發(fā)現(xiàn)沒有從接口獲取到數(shù)據(jù)

在這里插入圖片描述

換了個網(wǎng)絡后接口還是會返回操作頻繁的錯誤信息,仔細檢查后發(fā)現(xiàn)這個接口需要一個動態(tài)的cookies不然會一值返回錯誤頻繁

data = {
  'first': 'true',
  'pn': '1',
  'kd': 'python'
}

#頭部中必須有user-agent和referer不然不會返回cookies
headers = {
  'referer': 'https://www.lagou.com/jobs/list_python/p-city_0?&cl=false&fromSearch=true&labelWords=&suginput=',
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}

#通過訪問主頁獲取cookies
r1= requests.get("https://www.lagou.com/jobs/list_python/p-city_0?&cl=false&fromSearch=true&labelWords=&suginput='",headers=headers)

#再post請求中傳入cookies
r2 = requests.post("https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false", data=data,headers=headers, cookies=r2.cookies)
print(r2.text)

注意!每請求十次接口cookies也會刷新一次,下面貼上完整爬蟲代碼

import json
import logging

import requests

#獲取cookie
def getCookie():
  res = requests.get("https://www.lagou.com/jobs/list_python/p-city_0?&cl=false&fromSearch=true&labelWords=&suginput=",
        headers=headers)
  return res.cookies

#獲取json數(shù)據(jù)
def getPage(i, cookies, kw):
  data = {
    'first': 'true',
    'pn': i,
    'kd': kw
  }
  res = requests.post("https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false", data=data,
             headers=headers, cookies=cookies)
  return json.loads(res.text)

#合并列表
def reduceList(l):
  text = ""
  for i in l:
    text += i + " "
  return text.strip()

#提取字段并保存到文件中
def saveInCsv(f, data):
  js = data["content"]["positionResult"]["result"]
  for node in js:

    # 對空值進行處理
    district = node["district"]
    if district != None:
      district = "-" + district
    else:
      district = ""

    f.write(
      node["positionName"] + "·" + node["city"] + district + "·" + node[
        "salary"] + "·" +
      node["workYear"] + "·" + node["education"] + "·" + reduceList(node["skillLables"]) + "·" +
      node["companyShortName"] + "·" + node["companySize"] + "·" + node["positionAdvantage"] + "\n")

if __name__ == '__main__':
  #定義頭部
  headers = {
    'referer': 'https://www.lagou.com/jobs/list_python/p-city_0?&cl=false&fromSearch=true&labelWords=&suginput=',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
  }

  #初始化cookie
  cookies = getCookie()

  with open("file.csv", "w", encoding="utf-8") as f:
    for i in range(1, 31):
      #每十個請求重新獲取cookie
      if (i % 10 == 0):
        cookies = getCookie()

      #解析字段并存儲
      data = getPage(i, cookies, "python")
      saveInCsv(f, data)

到此這篇關于python使用requests庫爬取拉勾網(wǎng)招聘信息的實現(xiàn)的文章就介紹到這了,更多相關python requests爬取拉勾網(wǎng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python刪除字符串中字符的四種方法示例代碼

    Python刪除字符串中字符的四種方法示例代碼

    這篇文章主要介紹了Python刪除字符串中字符的四種方法,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • Python任意字符串轉(zhuǎn)16, 32, 64進制的方法

    Python任意字符串轉(zhuǎn)16, 32, 64進制的方法

    今天小編就為大家分享一篇Python任意字符串轉(zhuǎn)16, 32, 64進制的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python3.9新特性詳解

    Python3.9新特性詳解

    這篇文章主要介紹了Python3.9新特性詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • python 判斷自定義對象類型

    python 判斷自定義對象類型

    python 判斷自定義對象類型 判斷內(nèi)建的類型可以用type。
    2009-03-03
  • Django?ORM?事務和查詢優(yōu)化的操作方法

    Django?ORM?事務和查詢優(yōu)化的操作方法

    這篇文章主要介紹了Django?ORM?事務和查詢優(yōu)化,包括事務操作、ORM 惰性查詢及only與defer相關知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • Jupyter?Notebook界面漢化完整步驟

    Jupyter?Notebook界面漢化完整步驟

    這篇文章主要給大家介紹了關于Jupyter?Notebook界面漢化的相關資料,設置成中文界面后非常利于操作,文中介紹的方法非常簡單,需要的朋友可以參考下
    2023-09-09
  • Python內(nèi)置加密模塊用法解析

    Python內(nèi)置加密模塊用法解析

    這篇文章主要介紹了Python內(nèi)置加密模塊用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • python 通過手機號識別出對應的微信性別(實例代碼)

    python 通過手機號識別出對應的微信性別(實例代碼)

    這篇文章主要介紹了python 通過手機號識別出對應的微信性別,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • Python進程池log死鎖問題分析及解決

    Python進程池log死鎖問題分析及解決

    最近線上運行的一個python任務負責處理一批數(shù)據(jù),為提高處理效率,使用了python進程池,并會打印log,本文給大家分析了Python進程池log死鎖問題以及解決方法,需要的朋友可以參考下
    2024-01-01
  • Python數(shù)據(jù)結構與算法之完全樹與最小堆實例

    Python數(shù)據(jù)結構與算法之完全樹與最小堆實例

    這篇文章主要介紹了Python數(shù)據(jù)結構與算法之完全樹與最小堆,結合實例形式分析了Python完全樹定義及堆排序功能實現(xiàn)相關操作技巧,需要的朋友可以參考下
    2017-12-12

最新評論