import requests import json import time position = input(\'输入你要查询的职位:\') url = \'https://www.lagou.com/jobs/positionAjax.json?city=%E6%9D%AD%E5%B7%9E&needAddtionalResult=false\' headers = { \'User-Agent\':\'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\', } prox = { #设置代理服务器 \'http\':\'http://47.89.48.239:808\', \'https\':\'https://47.52.3.154:808\' } def get_page(): #通过你输入的职位来获取每个职位的最大的页数,后期来进行遍历 data = { \'first\': \'false\', \'pn\': \'1\', \'kd\': position, } html = requests.post(url,headers=headers,data=data,proxies = prox) json_data = json.loads(html.text) job_messages = json_data[\'content\'][\'positionResult\'] page = job_messages[\'totalCount\']/job_messages[\'resultSize\'] #总的工作职位除以每页显示的工作岗位,得出的页数,但是因为你会余数,所有做个判断 num = str(job_messages[\'totalCount\']/job_messages[\'resultSize\'])[-1] if num != 0: #如果是小数就加1,不是小数直接返回页数 tole_page = int(page) + 1 return tole_page else: tole_page = int(page) return tole_page def get_job_message(data): #获取每页的工作信息 html = requests.post(url,headers=headers,data=data,proxies = prox) if html.status_code == 200: #显示状态码 json_data = json.loads(html.text) job_messages = json_data[\'content\'][\'positionResult\'][\'result\'] for job_message in job_messages: company = job_message[\'companyFullName\'] #公司名称 companySize = job_message[\'companySize\'] #公司大小 positionName = job_message[\'positionName\'] #职位名称 salary = job_message[\'salary\'] #工资 workYear = job_message[\'workYear\'] #工作年限 district = job_message[\'district\'] #工作地址 print(company,companySize,positionName,salary,workYear,district) else: print(\'没有获取网页数据\') for pn in range(1,get_page()+1): data = { \'first\': \'false\', \'pn\': str(pn), \'kd\': position, } print(data) get_job_message(data) time.sleep(3)