python 抓取拉勾网 攻略
废话不多说,直接上代码,将数据存入Mongdb
import requests
import pymongo
import time
import random mycon = pymongo.MongoClient('127.0.0.1',27017) # 建立连接
mydb = mycon['lagou_data'] # 设置库名 class LaGouSpider():
def __init__(self,city,kd):
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36',
'Referer': 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=',
}
self.city = city
self.max_pn = 1
self.kd = kd def get_start(self):
mycol = mydb[self.kd] # 设置集合名
url = "https://www.lagou.com/jobs/positionAjax.json?city="+ self.city +"&needAddtionalResult=false"
for page in range(1,10):
data = {
'first': 'true',
'pn': page,
'kd': self.kd
}
s = requests.Session()
s.get(url = "https://www.lagou.com/jobs/list_python%E5%BC%80%E5%8F%91%E5%B7%A5%E7%A8%8B%E5%B8%88?labelWords=&fromSearch=true&suginput=",headers = self.headers)
cookies = s.cookies
response = s.post(url=url,data=data,cookies = cookies,headers = self.headers).json()
content = response.get('content')
if content:
result = content['positionResult']['result']
print('岗位名称:{},所在城市:{},开始抓取第:{}页\n'.format(self.kd,self.city,page))
for i in result:
lagou_data = {}
lagou_data['positionName'] = i['positionName'] # 岗位名称
lagou_data['companyFullName'] = i['companyFullName'] # 公司全名
lagou_data['workYear'] = i['workYear'] # 工作经验要求
lagou_data['education'] = i['education'] # 学历要求
lagou_data['jobNature'] = i['jobNature'] # 工作性质
lagou_data['salary'] = i['salary'] # 薪资
lagou_data['city'] = i['city'] # 所在城市
lagou_data['financeStage'] = i['financeStage'] # 金融阶段
lagou_data['industryField'] = i['industryField'] # 经营范围
lagou_data['companyShortName'] = i['companyShortName']# 公司简名
lagou_data['positionAdvantage'] = i['positionAdvantage']# 岗位优势
lagou_data['companySize'] = i['companySize'] # 公司规模
lagou_data['companyLabelList'] = i['companyLabelList']# 岗位待遇标签
lagou_data['district'] = i['district'] # 所在区域
lagou_data['positionLables'] = i['positionLables'] # 技术范围标签
lagou_data['firstType'] = i['firstType'] # 岗位类型
lagou_data['createTime'] = i['createTime'] # 发布时间
print(lagou_data)
mycol.insert(lagou_data)
time.sleep(random.uniform(3,7)) # 随机休眠 if __name__ == '__main__':
lagou = LaGouSpider('北京','python')
lagou.get_start()
简述:拉勾网反爬一般,也就是先获取该搜索页面中的 cookies信息,然后添加到返回的json数据接口中。
python 抓取拉勾网 攻略的更多相关文章
- (转)python爬取拉勾网信息
学习Python也有一段时间了,各种理论知识大体上也算略知一二了,今天就进入实战演练:通过Python来编写一个拉勾网薪资调查的小爬虫. 第一步:分析网站的请求过程 我们在查看拉勾网上的招聘信息的时候 ...
- scrapy抓取拉勾网职位信息(一)——scrapy初识及lagou爬虫项目建立
本次以scrapy抓取拉勾网职位信息作为scrapy学习的一个实战演练 python版本:3.7.1 框架:scrapy(pip直接安装可能会报错,如果是vc++环境不满足,建议直接安装一个visua ...
- Python 抓取网页并提取信息(程序详解)
最近因项目需要用到python处理网页,因此学习相关知识.下面程序使用python抓取网页并提取信息,具体内容如下: #---------------------------------------- ...
- 使用 Python 抓取欧洲足球联赛数据
Web Scraping在大数据时代,一切都要用数据来说话,大数据处理的过程一般需要经过以下的几个步骤 数据的采集和获取 数据的清洗,抽取,变形和装载 数据的分析,探索和预测 ...
- python抓取性感尤物美女图
由于是只用标准库,装了python3运行本代码就能下载到多多的美女图... 写出代码前面部分的时候,我意识到自己的函数设计错了,强忍继续把代码写完. 测试发现速度一般,200K左右的下载速度,也没有很 ...
- fiddler Android下https抓包全攻略
fiddler Android下https抓包全攻略 fiddler的http.https的抓包功能非常强大,可非常便捷得对包进行断点跟踪和回放,但是普通的配置对于像招商银行.支付宝.陌陌这样的APP ...
- python抓取网页例子
python抓取网页例子 最近在学习python,刚刚完成了一个网页抓取的例子,通过python抓取全世界所有的学校以及学院的数据,并存为xml文件.数据源是人人网. 因为刚学习python,写的代码 ...
- Python抓取页面中超链接(URL)的三中方法比较(HTMLParser、pyquery、正则表达式) <转>
Python抓取页面中超链接(URL)的3中方法比较(HTMLParser.pyquery.正则表达式) HTMLParser版: #!/usr/bin/python # -*- coding: UT ...
- 如何用python抓取js生成的数据 - SegmentFault
如何用python抓取js生成的数据 - SegmentFault 如何用python抓取js生成的数据 1赞 踩 收藏 想写一个爬虫,但是需要抓去的的数据是js生成的,在源代码里看不到,要怎么才能抓 ...
随机推荐
- is == 编码与解码
is 和 == 主要是数字和字符串的比较 1 区别: ==比较的是两边的值 is比较的是两边值的id id获取的方法 id() 2 小数据池: -5~256 3 字符串中特殊字符有id ...
- Value '0000-00-00' can not be represented as java.sql.Date解决办法
java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp 问题描述 ...
- javascript模块化之CommonJS、AMD、CMD、UMD、ES6
javascript模块化之CommonJS.AMD.CMD.UMD.ES6 一.总结 一句话总结: CommonJS是同步加载模块,用在服务端:AMD是异步加载模块,用于浏览器端 1.为什么服务器端 ...
- 从curl命令获取libcurl的用法
libcurl的用法参数太多 有时候弄不好 可以先用curl命令实现了 然后获取相应的libcurl代码 比如要上传文件 curl -T d:/h.txt http://demo.xudp.cn/up ...
- [论文理解] Spatial Transformer Networks
Spatial Transformer Networks 简介 本文提出了能够学习feature仿射变换的一种结构,并且该结构不需要给其他额外的监督信息,网络自己就能学习到对预测结果有用的仿射变换.因 ...
- SQLServer备份计划制定
SQLServer备份计划制定 一.备份计划制定 管理-->维护计划-->维护计划向导: 可选择全库备份.差异备份.事务日志备份 为保障数据的完整性:可采用备份策略1.数据量小的场景,数据 ...
- P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…
P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He… 大写祖母转数字 -64 发现dalao #include<bits/stdc++.h> usi ...
- koa2中间键原理
一.koa2 const http = require('http'); const compose = require('./compose'); class Koa { constructor() ...
- leetcode 347前k个高频元素
通过hash map遍历一遍存储出现的次数,通过小顶堆存储k个元素 //设想利用hash map来存储每个元素的个数:采用小顶堆存储k个元素:timeO(n+klogk)spaceO(n+k) cla ...
- Android ConstraintLayout 约束布局属性
常用方法总结 layout_constraintTop_toTopOf // 将所需视图的顶部与另一个视图的顶部对齐. layout_constraintTop_toBottomOf // 将所需视图 ...