import requests as re
import json
import pandas as pd
import time
import random
'''其中三個編碼是全國阔逼、深圳和廣州,但是哪個是哪個不記得了'''
#%E6%B7%B1%E5
#%E5%B9%BF%E5%B7%9E
#%E5%85%A8%E5%9B%BD
#獲取網頁url
def get_url(keyword,pn):
base_url1 = "https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90?labelWords=&fromSearch=true&suginput=" #不需要cookie的url
base_url = "https://www.lagou.com/jobs/positionAjax.json?px=default&city=%E6%B7%B1%E5%BD&needAddtionalResult=false"
base_headers = {"Accept": "application/json, text/javascript, */*; q=0.01",
"Host": "www.lagou.com",
"Referer": "https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90?labelWords=&fromSearch=true&suginput=",
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'
}
data = {
"first": "true",
"pn": "{}".format(pn),
"kd": "{}".format(keyword)
}
session = re.Session() #創(chuàng)建cookie存儲
session.get(url=base_url1,headers=base_headers) #通過網址url1建立cookie
response = session.post(url=base_url, headers=base_headers, data=data)
response.encoding = 'utf-8'
#print(response)
return response
#解析網頁信息
def total_Count(response):
page = response.json()
# print(page)
total_count = page['content']['positionResult']['totalCount'] #totalCount為總個數
pn_count = int(total_count)//15 + 1
#頁數
print('職位總數{},共{}頁'.format(total_count,pn_count))
return pn_count
def parse_url(response):
page = response.json()
for i in range(1,16):
jobs_list = page['content']['positionResult']['result']
print(jobs_list)
page_info_list = [] #用于存儲data
for i in jobs_list:
job_info = []
job_info.append(i['city'])
job_info.append(i['companyFullName'])
job_info.append(i['companyShortName'])
job_info.append(i['companySize'])
job_info.append(i['financeStage'])
job_info.append(i['district'])
job_info.append(i['positionName'])
job_info.append(i['workYear'])
job_info.append(i['education'])
job_info.append(i['salary'])
job_info.append(i['positionAdvantage'])
job_info.append(i['industryField'])
page_info_list.append(job_info)
print(page_info_list)
return page_info_list
def save_data(page_info_list):
columns = ['城市','公司全名', '公司簡稱', '公司規(guī)模', '融資階段', '區(qū)域', '職位名稱', '工作經驗', '學歷要求', '工資', '職位福利', '行業(yè)']
df = pd.DataFrame(data=page_info_list,
columns=columns)
#print(df)
df.to_csv('/Users/liyili2/Downloads/data2.csv', index=False,encoding='utf-8')
print('保存完成')
# #調用中心
def main():
keyword = input('輸入查找內容:') #輸入搜索內容
a = get_url(keyword,pn=1) #獲取respones
b = total_Count(a)
print(b)# 獲得數據總個數和頁數
total_info = [] #用來儲存每頁parse_url
for i in range(1,int(b)+1): #實現翻頁效果
a = get_url(keyword, pn=i)
c = parse_url(a)
total_info += c
time.sleep(20)
print('成功獲取第{}頁'.format(i))
d = save_data(total_info)
if __name__ =="__main__":
main()
轉載-爬取拉勾網數據代碼
?著作權歸作者所有,轉載或內容合作請聯系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狐蜕,“玉大人宠纯,你說我怎么就攤上這事〔闶停” “怎么了婆瓜?”我有些...
- 正文 為了忘掉前任猴蹂,我火速辦了婚禮,結果婚禮上楣嘁,老公的妹妹穿的比我還像新娘磅轻。我一直安慰自己,他們只是感情好逐虚,可當我...
- 文/花漫 我一把揭開白布聋溜。 她就那樣靜靜地躺著,像睡著了一般痊班。 火紅的嫁衣襯著肌膚如雪勤婚。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼型雳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起纠俭,我...
- 正文 年R本政府宣布,位于F島的核電站席镀,受9級特大地震影響匹中,放射性物質發(fā)生泄漏夏漱。R本人自食惡果不足惜豪诲,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望挂绰。 院中可真熱鬧屎篱,春花似錦、人聲如沸葵蒂。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽践付。三九已至秦士,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間永高,已是汗流浹背隧土。 一陣腳步聲響...
推薦閱讀更多精彩內容
- 又一年的畢業(yè)季來臨了,一大波大學生加入了找工作的大軍幕庐,給這些新加入職場的學生們提供寶貴的招聘的信息久锥,通過pytho...
- ——2018.06.01——最近幾天看到了很多文章寫拉勾網職位爬取奴拦,那些基本是基于requests + json,...
- 寫在最前面: 本文只做學習交流用届吁,請勿惡意使用相關代碼測試代碼错妖,注意限制請求次數測試代碼,注意限制請求次數測試代碼...