BeautifulSoup爬取智联招聘数据
BeautifulSoup爬取智联招聘数据
警告:
此项技术仅适用于练习,限制大量大规模爬取,在爬取中使用了个人cookie,请注意不要随意泄露,内含个人隐私信息!
如果过分爬取,会造成ip被封!
1.导入所需函数库
from bs4 import BeautifulSoup
import requests
import pandas as pd
import pymysql
2.爬取招聘数据
3.配置请求头
## USER_AGENT
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77'
## URL:网页从p=1 -> p=34
URL = 'https://sou.zhaopin.com/?jl=531&p=1'
## COOKIE
COOKIE = ''
4.数据请求
#网页请求
html=rq.get(url=URL,headers=headers,timeout = 30)
#字符集设置
html.encoding="utf-8"
#获取请求状态码
code=html.status_code
if code==200:print("网页请求成功")#网页数据解析page=bs(html.text,"html.parser")#获取岗位名称job_name=page.find_all("span",class_="iteminfo__line1__jobname__name")#获取岗位薪资job_salary=page.find_all("p",class_="iteminfo__line2__jobdesc__salary")#获取公司名称company_name=page.find_all("span",class_="iteminfo__line1__compname__name")#获取公司地址company_address=page.find_all("ul",class_="iteminfo__line2__jobdesc__demand")#公司介绍company_dec=page.find_all("div",class_="iteminfo__line2__compdesc")
else:print("网页请求失败")
print(job_name[1])
print(job_salary[1])
print(company_name[1])
print(company_address[1])
print(company_dec[1])
网页请求成功
<span class="iteminfo__line1__jobname__name" title="Java开发工程师"><span style="color: #FF5959;">Java开发</span>工程师</span><p class="iteminfo__line2__jobdesc__salary">6千-7千<!-- --></p><span class="iteminfo__line1__compname__name" title="耘盛祥荣(天津)科技创新产业发展有限公司">耘盛祥荣(天津)科技创新产业发展有限公司</span><ul class="iteminfo__line2__jobdesc__demand"><li class="iteminfo__line2__jobdesc__demand__item">天津-滨海新区</li> <li class="iteminfo__line2__jobdesc__demand__item">不限</li> <li class="iteminfo__line2__jobdesc__demand__item">大专</li></ul><div class="iteminfo__line2__compdesc"><span class="iteminfo__line2__compdesc__item">其它 </span> <span class="iteminfo__line2__compdesc__item">20-99人 </span></div>
5.定义函数
# 用来获取网页body标签内容的方法
def get_body_text(url):try:headers = {'User-Agent':USER_AGENT, 'Cookie':COOKIE.encode("utf-8").decode("latin1")}req = requests.get(url = url, headers = headers, timeout = 30)# 若状态码不是200,则抛出异常req.raise_for_status()req.encoding = 'UTF-8'except Exception as e:print('爬取错误', e)else:print(req.url, '爬取成功')return BeautifulSoup(req.text, 'html.parser')
6.数据爬取
## 从一个 job_info_block 中提取出所需信息的方法
#数据库配置
conn = pymysql.connect(host="localhost",port=3306,user="root",passwd="root",db="invite_data" )
#使用cursor()方法获取操作游标
cursor = conn.cursor()
def find_info(job_info):# 添加职位名称jobName=job_info.find('span', {'class':'iteminfo__line1__jobname__name'}).get_text()# 添加薪资salaryDesc=job_info.find('p', {'class':'iteminfo__line2__jobdesc__salary'}).get_text().replace(' ','').replace('\n','')# 添加工作要求jobLabels=job_info.find_all('li', {'class':'iteminfo__line2__jobdesc__demand__item'})[1].get_text()# 添加技能要求skills=str(job_info.find_all('div', {'class':'iteminfo__line3__welfare__item'}))# 添加经验要求jobExperience=job_info.find_all('li', {'class':'iteminfo__line2__jobdesc__demand__item'})[2].get_text()# 添加工作地址cityName=job_info.find_all('li', {'class':'iteminfo__line2__jobdesc__demand__item'})[0].get_text()# 添加公司名称brandName=job_info.find('span', {'class':'iteminfo__line1__compname__name'}).get_text()sql="INSERT INTO job_list (jobName, salaryDesc, jobLabels, skills, jobExperience, cityName, brandName) VALUES (%s,%s,%s,%s,%s,%s,%s)"param=(jobName, salaryDesc, jobLabels, skills, jobExperience, cityName, brandName)cursor.execute(sql,param)# 提交conn.commit()
7.定义主函数
def main():BASE_URL = 'https://sou.zhaopin.com/?jl=531&p='PAGE = 1## 定义一个列表用来存储职位信息job_list = []while PAGE <= 34:# 拼接URLURL = BASE_URL + str(PAGE)# 发送请求,获取当前页的HTML文本body = get_body_text(URL)# 获取当前页中的所有job_info代码块job_infos = body.find_all('a', {'class' : 'joblist-box__iteminfo'})# 循环info_block_list,把处理后的job_info添加到job_list中for job_info in job_infos:job_list.append(find_info(job_info))job_list.to_txt(f'../data/json/zhaoping2{PAGE}.txt')PAGE += 1
8.主启动器
if __name__ == '__main__':main()
BeautifulSoup爬取智联招聘数据相关推荐
- 深圳python数据分析师招聘_Python爬取智联招聘数据分析师岗位相关信息的方法
Python爬取智联招聘数据分析师岗位相关信息的方法 发布时间:2020-09-23 23:23:12 来源:脚本之家 阅读:88 进入智联招聘官网,在搜索界面输入'数据分析师',界面跳转,按F12查 ...
- 实战案例 | Scrapy 集成Selenium爬取智联招聘数据
人生苦短,快学Python! 初学scrapy之后,发现就是效率对比于selenium和requests快了很多,那么问题来了,如果网站设置了反爬,比如User-Agent反爬,cookie反爬,IP ...
- python爬虫实例之爬取智联招聘数据
这是作者的处女作,轻点喷.... 实习在公司时领导要求学习python,python的爬虫作为入门来说是十分友好的,话不多说,开始进入正题. 主要是爬去智联的岗位信息进行对比分析出java和pytho ...
- 爬取智联招聘信息并存储
#-*- coding: utf-8 -*- import urllib.request import os,time from bs4 import BeautifulSoup #爬取智联招聘网站的 ...
- xpath爬取智联招聘--大数据开发职位并保存为csv
先上项目效果图: 本次爬取的URL为智联招聘的网址:https://www.zhaopin.com/ 首先先登录上去,为了保持我们代码的时效性,让每个人都能直接运行代码出结果,我们要获取到我们登录上去 ...
- python爬虫多url_Python爬虫实战入门六:提高爬虫效率—并发爬取智联招聘
之前文章中所介绍的爬虫都是对单个URL进行解析和爬取,url数量少不费时,但是如果我们需要爬取的网页url有成千上万或者更多,那怎么办? 使用for循环对所有的url进行遍历访问? 嗯,想法很好,但是 ...
- Python爬虫爬取智联招聘职位信息
目的:输入要爬取的职位名称,五个意向城市,爬取智联招聘上的该信息,并打印进表格中 #coding:utf-8 import urllib2 import re import xlwtclass ZLZ ...
- scrapy爬取智联招聘
我想分析下互联网行业全国招聘实习生的情况,通过爬取智联招聘,得到15467条数据,并导入Mysql 在items.py里: import scrapy from scrapy.http import ...
- 克服反爬虫机制爬取智联招聘网站
一.实验内容 1.爬取网站: 智联招聘网站(https://www.zhaopin.com/) 2.网站的反爬虫机制: 在我频繁爬取智联招聘网站之后,它会出现以下文字(尽管我已经控制了爬虫的爬 ...
最新文章
- vbyone接口引脚定义_一文了解A、B、C、D、E 5 种HDMI接口类型!网友:今天总算明白了...
- 线程,代码和数据–多线程Java程序实际运行的方式
- c语言动态指针数组--一种伪二维数组
- /proc/sysrq-trigger的使用
- 彼得·德鲁克 : 管理自己
- 关于Linux/kernel.h中的offsetof和container_of宏
- 应用常驻后台?需要用户对手机做配置
- Air202入坑指南2---LED闪烁
- 2019重庆大学计算机学院研究生,【计算机】计算机学院举行2019级研究生年级大会...
- LUAT游戏第一弹---贪吃蛇
- 7.5 《丰田模式》阅读笔记和感悟
- 利用反病毒软件开展恶意活动:Dharma勒索软件分析
- LeetCode 149 直线上最多的点数
- 数据库的视图定义及使用
- 如何实现超大文件上传?
- Android之多个View同时动画
- r语言归一化_生物信息学之RMA(Robust Multi-Array Average)算法的归一化和最终计算过程...
- 商汤绝影再下一城,赋能本田中国首款纯电系列新车发布
- thickBox参数详解
- 微型计算机内部安徽一词占几个字节,安徽理工大学计算机题库.doc
热门文章
- 微信小程序内嵌h5页面或者跳转至外部链接,及在webview页面添加元素
- android 实时录音播放,android 使用 audiorecord 和 audiotrack 实现实时录音播放
- 基于Keras的Python实践 3 chapter 印第安人糖尿病诊断
- 链表4:合并有序链表的3道题
- 大米“绑上”区块链,江苏为农产品上“身份证”
- 计算机课程制作月历,【信息技术】《制作月历》教学反思
- el-select下拉加载(实现懒加载)自定义loadmore事件
- echarts 怎么获取乡镇街道json
- 活动抽奖Java抽奖算法
- standards of 4 pole headset OMTP/CTIA