import urllib.request

import urllib.parse

from bs4 import BeautifulSoup

import json

import time

class ZhiLianSpider(object):

#url中不变的内容,要和参数进行拼接组成完整的url#

url='http://sou.zhaopin.com/jobs/searchresult.ashx?'

def init(self,jl,kw,start_page,end_page):

#将上面的参数都保存为自己的成员属性#

self.jl=jl

self.kw=kw

self.start_page=start_page

self.end_page=end_page

#定义一个空列表,用来存放所有的工作信息#

self.items=[]

#根据page拼接指定的url,然后生成请求对象#

def handle_request(self,page):

data={

'jl':self.jl,

'kw':self.kw,

'p':page

}

url_now=self.url+urllib.parse.urlencode(data)#拼接get参数

print(url_now)

#构建请求对象#

headers={

"User-Agnet":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"

}

request=urllib.request.Request(url=url_now,headers=headers)

return request

#解析内容函数#

def parse_content(self,content):

#生成对象#

soup=BeautifulSoup(content,'lxml')

#思路:先找到所有的table,因为一个工作岗位就是一个table,遍历这个table的列表,然后通过table对象的select、find方法去找每一条记录的具体信息#

table_list=soup.select('#newlist_list_content_table>table')[1:]

#遍历这个table_list,依次获取每一个数据#

print(table_list)

print(len(table_list))

for table in table_list:

#获取职位名称#

zwmc=table.select('.zwmc > div > a')[0].text

print(zwmc)#选择器返回是一个列表,需要通过下标访问 #

#获取公司名称#

gsmc=table.select('.gsmc > a')[0].text

#获取职位月薪#

zwyx=table.select('.zwyx')[0].text

#获取工作地点#

gzdd=table.select('.gzdd')[0].text

#获取发布时间#

gxsj=table.select('.gxsj > span')[0].text

#存放到字典中#

item={

'职位名称':zwmc,

'公司名称':gsmc,

'职位月薪':zwyx,

'工作地点':gzdd,

'更新时间':gxsj,

}

#再存放到列表中#

self.items.append(item)

#爬取程序#

def run(self):

#循环爬取每一页#

for page in range(self.start_page,self.end_page+1):

print('开始爬取第%s页'%page)

request=self.handle_request(page)

#发送请求,获取内容#

content=urllib.request.urlopen(request).read().decode()

#解析内容#

self.parse_content(content)

print('结束爬取第%s页'%page)

time.sleep(2)

#将列表数据保存在文件中#

string=json.dumps(self.items,ensure_ascii=False) #将字典形式的数据转化成字符串,想要输出中文需要指定ensure_ascii=False#

with open(r'/Users/marine/Desktop/python/zhilian.txt','w',encoding='utf8')as fp:

fp.write(string)

def main():

jl=input('请输入工作地点:')

kw=input('请输入工作关键字:')

start_page=int(input('请输入起始页码:'))

end_page=int(input('请输入结束页码:'))

#创建对象,启动爬取程序#

spider=ZhiLianSpider(jl,kw,start_page,end_page)

spider.run()

if name=='main':

main()

python爬取智联招聘网_Python-爬取智联招聘相关推荐

  1. python爬取智联招聘网_python爬取智联招聘工作岗位信息

    1 # coding:utf-8 2 # auth:xiaomozi 3 #date:2018.4.19 4 #爬取智联招聘职位信息 5 6 7 import urllib 8 from lxml i ...

  2. python抓取招聘数据_Python爬取招聘网站数据并做数据可视化处理

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于青灯编程 ,作者:清风 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有 ...

  3. python爬取淘宝商品信息_python爬取淘宝商品信息并加入购物车

    先说一下最终要达到的效果:谷歌浏览器登陆淘宝后,运行python项目,将任意任意淘宝商品的链接传入,并手动选择商品属性,输出其价格与剩余库存,然后选择购买数,自动加入购物车. 在开始爬取淘宝链接之前, ...

  4. python可以爬取的内容有什么_Python爬取视频(其实是一篇福利)过程解析 Python爬虫可以爬取什么...

    如何用python爬取视频网站的数据 如何用python爬取js渲染加载的视频文件不是每个人都有资格说喜欢,也不是每个人都能选择伴你一生! 有哪位大神指导下,有些视频网站上的视频文件是通过 js 加载 ...

  5. Python爬虫实战三 | 蓝奏网盘抓取网盘链接信息

    今天在使用蓝奏网盘的时候发现有一个文件夹加密分享,然后我就尝试了加密文件夹,但是文件夹下的文件还是可以直接通过访问该文件链接得到,所以对于文件夹加密是否显得有点鸡肋了呐? 如此,我们便简单的使用Pyt ...

  6. python爬去智联招聘网_Python爬虫爬取智联招聘(进阶版)

    点击上方"程序人生",选择"置顶公众号" 第一时间关注程序猿(媛)身边的故事 图片:Westworld Season 2 作者 王强 简介 Python追随者, ...

  7. python爬取千图网_python爬取lol官网英雄图片代码

    python爬取lol官网英雄图片代码可以帮助用户对英雄联盟官网平台的皮肤图片进行抓取,有很多喜欢lol的玩家们想要官方的英雄图片当作自己的背景或者头像,可以使用这款软件为你爬取图片资源,操作很简单, ...

  8. python爬取招聘信息_python 爬取boss直聘招聘信息实现

    原标题:python 爬取boss直聘招聘信息实现 1.一些公共方法的准备 获取数据库链接: importpymysql ''' 遇到不懂的问题?Python学习交流群:821460695满足你的需求 ...

  9. python爬取boss直聘招聘信息_Python 爬取boss直聘招聘信息!

    原标题:Python 爬取boss直聘招聘信息! 1.一些公共方法的准备 获取数据库链接: importpymysql ''' 遇到不懂的问题?Python学习交流群:821460695满足你的需求, ...

  10. [python爬虫]selenium模拟登录京东招聘网,爬取研发类,数据清洗,数据存储,终数据分析和可视化

    目录 引入包 模拟登陆京东网 利用XPath对网页源代码进行解析 数据清洗 每页数据以追加形式保存至csv文件 保存数据到MongoDB数据库,参数为字典组成的列表 数据分析与可视化 总函数 引入包 ...

最新文章

  1. 一款NPN三极管测量: BC547C
  2. vue中实现双向数据绑定原理,使用了Object.defineproperty()方法,方法简单
  3. lex/flex 笔记
  4. HDU 1394 Minimum Inversion Number(线段树的单点更新)
  5. xcode7,AFN不能使用的问题
  6. TNN API说明文档
  7. 恢复IE8自带的源代码查看器
  8. 环境搭建:Windows系统下Nacos集群搭建
  9. 【重难点】【RabbitMQ 02】如何避免消息重复投递和消息重复消费、如何防止消息丢失、如何保证消息的顺序性、如何保证消息队列的可用性
  10. 2018春招-赛码网-例题-不确定输入组数的多组数列求和
  11. 安卓bin固件文件编辑器_摄像头恶意固件制作指南
  12. 陈家骏程序设计教程用c 语言编程答案,陈家骏程序设计教程用c 语言编程答案...
  13. LibPcap经常丢包怎么办?
  14. 反向电压极性保护电路
  15. android 版本更新和下载安装适配7.0 8.0 9.0
  16. 前端开发之从零开始的uniapp(1):创建uni-app项目
  17. DDD第3篇 - 事件风暴
  18. java毕业设计旅游网站设计源码+lw文档+mybatis+系统+mysql数据库+调试
  19. js大数字类型(超过16位)失真问题
  20. Openstack_Nova部署(t版)

热门文章

  1. antd upload一直处于uploading状态
  2. influx的常规操作
  3. 《Going Deeper with Convolutions》阅读笔记
  4. Java-求数字n的所有约数
  5. 使用Unity制作3D驾驶游戏
  6. 非常适合菜鸟练手的Python项目,墙裂建议收藏!
  7. java 短信验证码(创蓝接口)调用
  8. 微信小程序 —— 模块化方法的总结
  9. 14西安区域赛总结帖
  10. 数组去重,对象去重,数组对象去重