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 爬取智联招聘数据(简易版)的更多相关文章

  1. 用Python爬取智联招聘信息做职业规划

    上学期在实验室发表时写了一个爬取智联招牌信息的爬虫. 操作流程大致分为:信息爬取——数据结构化——存入数据库——所需技能等分词统计——数据可视化 1.数据爬取 job = "通信工程师&qu ...

  2. python爬取智联招聘职位信息(单进程)

    我们先通过百度搜索智联招聘,进入智联招聘官网,一看,傻眼了,需要登录才能查看招聘信息 没办法,用账号登录进去,登录后的网页如下: 输入职位名称点击搜索,显示如下网页: 把这个URL:https://s ...

  3. node.js 89行爬虫爬取智联招聘信息

    写在前面的话, .......写个P,直接上效果图.附上源码地址  github/lonhon ok,正文开始,先列出用到的和require的东西: node.js,这个是必须的 request,然发 ...

  4. Python+selenium爬取智联招聘的职位信息

    整个爬虫是基于selenium和Python来运行的,运行需要的包 mysql,matplotlib,selenium 需要安装selenium火狐浏览器驱动,百度的搜寻. 整个爬虫是模块化组织的,不 ...

  5. python爬取智联招聘职位信息(多进程)

    测试了下,采用单进程爬取5000条数据大概需要22分钟,速度太慢了点.我们把脚本改进下,采用多进程. 首先获取所有要爬取的URL,在这里不建议使用集合,字典或列表的数据类型来保存这些URL,因为数据量 ...

  6. scrapy项目2:爬取智联招聘的金融类高端岗位(spider类)

    ---恢复内容开始--- 今天我们来爬取一下智联招聘上金融行业薪酬在50-100万的职位. 第一步:解析解析网页 当我们依次点击下边的索引页面是,发现url的规律如下: 第1页:http://www. ...

  7. 用生产者消费模型爬取智联招聘python岗位信息

    爬取python岗位智联招聘 这里爬取北京地区岗位招聘python岗位,并存入EXECEL文件内,代码如下: import json import xlwt import requests from ...

  8. python3爬虫抓取智联招聘职位信息代码

    上代码,有问题欢迎留言指出. # -*- coding: utf-8 -*- """ Created on Tue Aug 7 20:41:09 2018 @author ...

  9. scrapy 爬取智联招聘

    准备工作 1. scrapy startproject Jobs 2. cd Jobs 3. scrapy genspider ZhaopinSpider www.zhaopin.com 4. scr ...

随机推荐

  1. uboot学习之uboot-spl的程序流程分析

    uboot-spl的程序流程主要包含下面的几个函数: _start->reset->save_boot_params->cpu_init_crit->lowlevel_init ...

  2. html常见的块元素与内联(行内)元素用法说明(一)

    html平时常见的块元素有:div, p, h1, h2, h3等,内联元素有:span, a, img等. 块元素的属性:无论内容是什么,都会独占一整行.主要用于页面布局. 内联元素的属性:只占自身 ...

  3. 第八届蓝桥杯java b组第九题

    标题: 分巧克力 儿童节那天有K位小朋友到小明家做客.小明拿出了珍藏的巧克力招待小朋友们.    小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形. 为了公平起见,小明需要从这 N ...

  4. frp 端口映射

    简介 frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透. 场景 利用处于内网或防火墙后 ...

  5. .Net Core中间件和过滤器实现错误日志记录

    1.中间件的概念 ASP.NET Core的处理流程是一个管道,中间件是组装到应用程序管道中用来处理请求和响应的组件. 每个中间件可以: 选择是否将请求传递给管道中的下一个组件. 可以在调用管道中的下 ...

  6. ELK系列(二):.net core中使用ELK

    ELK安装好后,我们现在.net Core中使用一下,大体思路就是结合NLog日志组件将数据写入ELK中,其它语言同理. ELK的安装还是有些复杂的,我们也可以在Docker中安装ELK:docker ...

  7. 洛谷:P3384 [HNOI2004]宠物收养场

    原题地址:https://www.luogu.org/problemnew/show/P3384 题目简述 给定一些序列(没有重复数字),每个序列支持: 给定一些数k(对于每个序列不重复),每次在序列 ...

  8. ng form组件(表单)

    tip: 数据的双向绑定(数据的双向绑定只是针对表单) 实现数据的双向绑定需要在app_module.ts(根模块)中进行注册一些东西 import {FormsModule} from '@angu ...

  9. 【Java】用Freemarker完美导出word文档(带图片)

    Java  用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. ...

  10. Solidity 编程实例--投票

    Voting 投票 思路是为每张选票创建一个合约,每个投票选项提供一个短名称.合约创建者作为会长将会给每个投票参与人各自的地址投票权. 地址后面的人们可以选择自己投票或者委托信任的代表人替他们投票.在 ...