Python爬取智聯招聘職位資訊

2021-08-18 10:39:14 字數 2992 閱讀 3785

from urllib import request

from urllib import parse

from bs4 import beautifulsoup

import csv

# 管理json資料的模組的

import json

# 定義智聯的爬蟲類

class zhilianspider(object):

def

__init__(self

,url,area,job,startpage,endpage):

# 路由

self.url = url

# 工作的地點

self.area = area

# 工作的崗位

self.job = job

# 爬取的起始頁

self.startpage = startpage

# 爬取的結束頁

self.endpage = endpage

# 請求頭

self.headers =

# 該方法用於處理url成乙個物件

def

handleurl(self

,page):

data=

# 對路由中的中文字元進行編碼

data = parse.urlencode(data)

url = self.url+data

# 把請求路由轉換成物件

req = request.request(url = url,

headers=self.headers)

return req

# 該方法用於提取所需要的內容

def

download(self

,req):

res = request.urlopen(req)

#解析內容

soup = beautifulsoup(res,

"lxml")

tblist = soup.select("#newlist_list_content_table .newlist")[1:]

list1 =

for tb in tblist:

# 定義乙個空字典.用於儲存獲取的資料

item = {}

# 提取崗位

zwmc = tb.select(".zwmc div a")[0].get_text()

# 提取公司

gsmc = tb.select(".gsmc a")[0].get_text()

# 提取薪資

zwyx = tb.select(".zwyx")[0].get_text()

# 提取地點

gzdd = tb.select(".gzdd")[0].get_text()

item['zwmc']=zwmc

item['gsmc']=gsmc

item['zwyx']=zwyx

item['gzdd']=gzdd

# print(zwmc, "\t", gsmc, "\t", zwyx, "\t", gzdd)

return list1

# 該方法用於呼叫上面的兩個方法

def

start(self):

# 定義乙個大的列表用於將所有頁面的職位資訊進行整合

joblist =

for page in

range(self.startpage,

self.endpage+1):

req = self.handleurl(str(page))

itemslist = self.download(req)

joblist += itemslist

# 【資料儲存】寫入json資料

for ha in joblist:

with

open("幼師.txt"

,"a"

,encoding="utf-8") as fp:

txtlist = ""

for key, value in ha.items():

txtlist += value+"\t"

fp.write(txtlist+"

\n\n\n

") jsonobj = json.dumps(joblist)

# 把資料儲存到csv檔案

filenames = ["zwmc"

,"gsmc"

,"zwyx"

,"gzdd"]

for ha in joblist:

with

open("幼師.csv"

,"a"

,errors="ignore") as fp:

f_csv=csv.dictwriter(fp,

fieldnames=filenames)

f_csv.writerow(ha)

# 寫入json檔案

with

open("zhilian.json"

,"w"

,encoding="utf-8") as fp:

fp.write(jsonobj)

if __name__ == '__main__':

url = ""

area = input("請輸入工作地點:")

job = input("請輸入職位:")

startpage = int(input("請輸入其實頁:"))

endpage = int(input("請輸入結束頁:"))

# 建立乙個zhilianspider物件

spiderobj = zhilianspider(url,area,job,startpage,endpage)

spiderobj.start()

執行後的csv檔案的截圖:

python 爬取智聯招聘

乙個爬取智聯的乙個小爬蟲 python版本 python3.7 依賴模組 selenium pyquery 廢話少說,上 from selenium import webdriver from selenium.webdriver.chrome.options import options from...

python爬取智聯招聘資訊

importrandom importre fromtimeimportsleep importrequests fromtqdmimporttqdm importuser agents importcsv defget page city,keyword,page 構造請求位址 paras 完整網...

python爬取智聯招聘資訊

分享今天寫的乙個爬取智聯招聘資訊的爬蟲,使用了requests和re模組,沒有寫注釋,但是 都比較簡單,不是太難,這是爬取的資訊 coding utf 8 import requests import re from itertools import izip from json import du...