python3 requests_html 爬取智联招聘数据(简易版)
PS重点:我回来了-----我回来了-----我回来了
1. 基础需要: python3 基础
html5 CS3 基础
2.库的选择: 原始库 urllib2 (这个库早些年的用过,后来淡忘了)
进阶库 requests + BeautifulSop
Xpth 方法 -库lxml
组合版: requests_html (requests 作者)
存储: csv
正则: re
PS:那个方便用那个。
|-1
PS: 智联的网页ip复制到本地text,中文会出现加密,其他网站我没试过,但是智联真是这样,切记,切记
另外就是下载的页面数据,都是通过js渲染的,如果不使用render 方法,有些数据读取不到。
import requests_html
import csv
import re session = requests_html.HTMLSession()
r = session.get('https://sou.zhaopin.com/?jl=530&kw=爬虫工程师&kt=3')
r.html.render()
|-2
本来是要 使用 .html.find() 方法找标签,但是获取的数据只有一行,真的哔了狗,怀疑找的 html 标签不对,直接copy复制的层级,没问题。应该还是数据加载的问题
PS: 用正则去找的div 标签。
用 (\d)K-(\d)K 获取工资,它给我把0和k干掉了,神马情况。
xinzi = '<p.* class="contentpile__content__wrapper__item__info__box__job__saray">(.*?)</p>'
xinzi_title = re.findall(xinzi,r.html.html) gongsi = '<a.* target="_blank" class="contentpile__content__wrapper__item__info__box__cname__title company_title>(.*?)</>'
gongsi_title = re.findall(gongsi,r.html.html)
|-3
重点来了,文件的获取之后在存储。真的要尝试后才发现自己的错误点,马克思告诉我们要实践检验,是没错的。
获取之后的数据,存在列表里面,存在csv里面,发现就一行,就用了for 循环,遍历存储,但是发现存储的值还是间隔一行。目前没有什么好的思路,再找找原因。
wiht open('xinzi.csv','w+',) as files:
csvwrite = csv.write(files)
csvwrite.writeorw(['公司',薪资''])
#xinzi_title1 = r.html.find(xinzi_title,first=True)
#gongsi_title1 = r.html.find(gongsi_title,first=True)
for i in range(len(xinzi_title)):
csvwrite.writerow([xinzi_title[i],gongsi_title[i]])
完整:
#/usr/bin/python3
#conding:utf-8
#author:yan import requests_html
import csv
import re
# 获取连接,进行网页下载,js渲染
session = requests_html.HTMLSession()
r = session.get('https://sou.zhaopin.com/?jl=530&kw=爬虫工程师&kt=3')
r.html.render() #
xinzi = '<p.* class="contentpile__content__wrapper__item__info__box__job__saray">(.*?)</p>'
xinzi_title = re.findall(xinzi,r.html.html) gongsi = '<a.* target="_blank" class="contentpile__content__wrapper__item__info__box__cname__title company_title">(.*?)</a>'
gongsi_title = re.findall(gongsi,r.html.html) with open('xinzi1.csv','w+',) as filea:
csvwrite = csv.writer(filea)
csvwrite.writerow(['薪资','工资'])
#xinzi_title1 = r.html.find(xinzi_title,first=True)
#gongsi_title1 = r.html.find(gongsi_title,first=True)
for i in range(len(xinzi_title)):
csvwrite.writerow([xinzi_title[i],gongsi_title[i]])
PS:加油,
最近是心态炸裂,颓废了两年,
耗费大半个时间,真的是放纵自己。
该活过来了,生命走了三分之一的路程,浪费了多少。
python3 requests_html 爬取智联招聘数据(简易版)的更多相关文章
- 用Python爬取智联招聘信息做职业规划
上学期在实验室发表时写了一个爬取智联招牌信息的爬虫. 操作流程大致分为:信息爬取——数据结构化——存入数据库——所需技能等分词统计——数据可视化 1.数据爬取 job = "通信工程师&qu ...
- python爬取智联招聘职位信息(单进程)
我们先通过百度搜索智联招聘,进入智联招聘官网,一看,傻眼了,需要登录才能查看招聘信息 没办法,用账号登录进去,登录后的网页如下: 输入职位名称点击搜索,显示如下网页: 把这个URL:https://s ...
- node.js 89行爬虫爬取智联招聘信息
写在前面的话, .......写个P,直接上效果图.附上源码地址 github/lonhon ok,正文开始,先列出用到的和require的东西: node.js,这个是必须的 request,然发 ...
- Python+selenium爬取智联招聘的职位信息
整个爬虫是基于selenium和Python来运行的,运行需要的包 mysql,matplotlib,selenium 需要安装selenium火狐浏览器驱动,百度的搜寻. 整个爬虫是模块化组织的,不 ...
- python爬取智联招聘职位信息(多进程)
测试了下,采用单进程爬取5000条数据大概需要22分钟,速度太慢了点.我们把脚本改进下,采用多进程. 首先获取所有要爬取的URL,在这里不建议使用集合,字典或列表的数据类型来保存这些URL,因为数据量 ...
- scrapy项目2:爬取智联招聘的金融类高端岗位(spider类)
---恢复内容开始--- 今天我们来爬取一下智联招聘上金融行业薪酬在50-100万的职位. 第一步:解析解析网页 当我们依次点击下边的索引页面是,发现url的规律如下: 第1页:http://www. ...
- 用生产者消费模型爬取智联招聘python岗位信息
爬取python岗位智联招聘 这里爬取北京地区岗位招聘python岗位,并存入EXECEL文件内,代码如下: import json import xlwt import requests from ...
- python3爬虫抓取智联招聘职位信息代码
上代码,有问题欢迎留言指出. # -*- coding: utf-8 -*- """ Created on Tue Aug 7 20:41:09 2018 @author ...
- scrapy 爬取智联招聘
准备工作 1. scrapy startproject Jobs 2. cd Jobs 3. scrapy genspider ZhaopinSpider www.zhaopin.com 4. scr ...
随机推荐
- 利用sqlalchemy 查询视图
这个问题 google 百度 中英文搜了一上午.最新的回答还是 7年前.最后自己靠着官方文档的自己改出来一个比较方便的方法 使用环境 python == 3.7.0 SQLAlchemy === 1. ...
- SpringBootSecurity学习(15)前后端分离版之 OAuth2.0简单示例
OAuth2.0 OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者.客户端来申请资源,资源所有者同意以后,资源服务器可以向客户端颁发令牌.客户端通过令牌,去请求数据.也就是说, ...
- grep、正则表达式
1.grep :文本搜索工具 -i:忽略大小写--color:匹配到的内容高亮显示-v:显示没有被模式匹配到的行-o:只显示被模式匹配到的字符串-n:显示匹配到行的行号-E:使用扩展正则表达式-A:后 ...
- Hbase入门(四)——表结构设计-RowKey
Hbase的表结构设计与关系型数据库有很多不同,主要是Hbase有Rowkey和列族.timestamp这几个全新的概念,如何设计表结构就非常的重要. 创建 Hbase就是通过 表 Rowkey 列族 ...
- 死磕 java线程系列之自己动手写一个线程池
欢迎关注我的公众号"彤哥读源码",查看更多源码系列文章, 与彤哥一起畅游源码的海洋. (手机横屏看源码更方便) 问题 (1)自己动手写一个线程池需要考虑哪些因素? (2)自己动手写 ...
- java架构之路-(面试篇)Mysql面试大全
说一下mysql比较宏观的面试,具体咋写sql的这里就不过多举例了.后面我还会给出一个关于mysql面试优化的试题,这里主要说的索引和B+Tree结构,很少提到我们的集群配置优化方案. 1.索引是什么 ...
- 在 Cocos Creator 中使用 Protobufjs(一)
一. 环境准备 我一直在探索Cocos H5正确的开发姿势,目前做javascript项目已经离不开 nodejs.npm或grunt等脚手架工具了. 1.初始化package.json文件 npm ...
- 浅谈个人对客户端JavaScript同步、异步、执行顺序等概念的理解
一.同步和异步的概念. 同步:即按代码的顺序执行任务. 在下列代码中,按照同步概念,则是先打印1后打印2. console.log(1); console.log(2); 异步:即执行一个任务的同时执 ...
- centos7.x 将普通用户加入sudoers中,获取sudo执行权限
centos7.x 将普通用户加入sudoers中,获取sudo执行权限 0 问题由来 你在提起兴致学习的时候,兴冲冲地往黑洞洞的文本窗口输入下一行: [pan@localhost ~]$ sud ...
- [开源]如何使用goapp写你的后台管理系统_golang
简析 基于 Gin + GORM + Casbin + vue-element-admin 实现的权限管理系统. 基于Casbin 实现RBAC权限管理. 前端实现: vue-element-admi ...