zoukankan      html  css  js  c++  java
  • 爬取拉钩信息

    自动化爬取拉钩网的职位信息:

     爬取30页的数据代码:

    import requests
    import json
    
    #主URL ---浏览器url地址栏里面的地址
    url1='https://www.lagou.com/jobs/list_python?city=%E6%88%90%E9%83%BD&cl=false&fromSearch=true&labelWords=&suginput='
    
    #json数据的url地址
    url='https://www.lagou.com/jobs/positionAjax.json?city=%E6%88%90%E9%83%BD&needAddtionalResult=false'
    
    headers={
    	'Accept': 'application/json, text/javascript, */*; q=0.01',
    	'Referer':'https://www.lagou.com/jobs/list_python?city=%E6%88%90%E9%83%BD&cl=false&fromSearch=true&labelWords=&suginput=',
    	'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
    }
    
    for j in range(1,30):
    	data={
    		'first':' true',
    		'pn': j,
    		'kd':' python'
    	}
    
    
    	#因为拉钩网是需要登陆后才能查看到招聘信息,所以需要保持用户的登陆状态
    	s=requests.Session()
    	s.get(url=url1,headers=headers)
    	#通过登陆状态取到用户的登陆信息
    	user_cookie=s.cookies
    
    	#请求数据
    	response_data=s.post(url=url,headers=headers,data=data,cookies=user_cookie).json()
    	result=response_data['content']['positionResult']['result']
    
    	for i in result:
    		dict_json={}
    		dict_json['公司名称']=i['companyFullName'],
    		dict_json['职位名字']=i['positionName'],
    		dict_json['类型']=i['secondType'],
    		dict_json['技能要求']=i['skillLables']
    		print(dict_json)
    

      

    如下代码是爬去一页数据中的职位部分信息:

    import requests
    import json
    
    #主URL ---浏览器url地址栏里面的地址
    url1='https://www.lagou.com/jobs/list_python?city=%E6%88%90%E9%83%BD&cl=false&fromSearch=true&labelWords=&suginput='
    
    #json数据的url地址--F12后,在network-->XHR-->Preview中查找是否是我们需要的内容来确定
    url='https://www.lagou.com/jobs/positionAjax.json?city=%E6%88%90%E9%83%BD&needAddtionalResult=false'
    
    headers={
    	'Accept': 'application/json, text/javascript, */*; q=0.01',
    	'Referer':'https://www.lagou.com/jobs/list_python?city=%E6%88%90%E9%83%BD&cl=false&fromSearch=true&labelWords=&suginput=',
    	'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
    }
    
    data={
    	'first':' true',
    	'pn': '1',
    	'kd':' python'
    }
    
    
    #因为拉钩网是需要登陆后才能查看到招聘信息,所以需要保持用户的登陆状态
    s=requests.Session()
    s.get(url=url1,headers=headers)
    #通过登陆状态取到用户的登陆信息
    user_cookie=s.cookies
    
    #请求数据
    response_data=s.post(url=url,headers=headers,data=data,cookies=user_cookie).json()
    result=response_data['content']['positionResult']['result']
    
    for i in result:
    	dict_json={}
    	dict_json['公司名称']=i['companyFullName'],
    	dict_json['职位名字']=i['positionName'],
    	dict_json['类型']=i['secondType'],
    	dict_json['技能要求']=i['skillLables']
    	print(dict_json)
  • 相关阅读:
    ise与win8兼容解决方案
    总线带宽(转整理)
    AHB 总线问答(转)
    git status简介
    浏览器允许的并发请求资源数是什么意思?
    How to use Request js (Node js Module) pools
    socket.setNoDelay([noDelay]) 用的是Nagle算法
    nodejs 如何使用upgrade,并且C/B 发送消息
    Node.js how to respond to an upgrade request?
    What is an http upgrade?
  • 原文地址:https://www.cnblogs.com/benpao1314/p/11389607.html
Copyright © 2011-2022 走看看