摘要:随着信息技术的飞速发展,互联网上的信息数量出现了爆炸式的增长。如何从海量数据中提取并利用有用信息成为一大挑战。网络爬虫的出现有效地解决了这一问题,它可以按照人们设计的规则,凭借计算机的强大处理能力,快速地获取并提炼出有价值的数据.相对于人工获取信息的方式,网络爬虫获取信息的方式具有更高的效率。
本文通过Python语言实现一个对Ajax异步加载的网站(智联招聘)的爬虫。通过爬虫程序实现对全国不同岗位的信息批量抓取,具体信息包含:职位名称、薪资、信息更新时间、工作地点等,在进行数据分析。
文章首先对Web数据挖掘技术进行概括,分别从数据挖掘技术概念,技术应用优势与技术原理三方面进行论述。其次,重点探讨基于Python基础上的Web数据挖掘技术开发设计方法,对数据挖掘过程中的各类爬虫技术应用优势进行对比,可以作为数据挖掘系统构建过程中的理论参照。
关键词: Web;爬虫系统 ;Python ;数据挖掘 ;数据分析
Design and implementation of the crawler system based on Web
Abstract: With the rapid development of information technology, the number of information on the Internet has shown an explosive growth.How to extract and use useful information from huge amounts of data has become a big challenge.The emergence of network crawler effectively solves this problem, which can quickly obtain and extract valuable data according to the rules designed by people, with the powerful processing ability of computers. Compared with the way of manually acquiring the information, the way of the network crawler obtaining the information is more efficient.
This paper implements a crawler asynchronously loaded on the Ajax website (Zhaopin) in the Python language.Through the crawler program, the information of different positions in the country is captured in batches. The specific information includes: job name, salary, information update time, work place, etc., for data analysis.
The article first summarizes the Web data mining technology, respectively from the concept of data mining technology, technology application advantages and technical principles.Secondly, focus on the development and design method of Web data mining technology based on Python, and compare the application advantages of various crawler technologies in the process of data mining, which can be used as a theoretical reference in the construction process of data mining system.
Key words: Web; crawler system; Python; data mining; data analysis
目 录
1 绪论 1
1.1 选题背景 1
1.1.1 课题的国内外的研究现状 1
1.1.2 课题研究的必要性 2
1.2 课题研究的内容 3
2 开发软件平台介绍 4
2.1 软件平台 4
2.2 开发语言 4
2.3 运行环境和系统结构 5
3 Web的爬虫系统总体方案 6
3.1 系统组成 6
3.2 robot协议对本设计的影响 6
3.3 爬虫 7
3.3.1 工作原理 7
3.3.2 工作流程 7
3.3.3 抓取策略 7
4 模块化设计 9
4.1 Tkinter图形界面模块介绍 9
4.1.1 图形模块的略解 9
4.1.2 图形界面模块与其他模块的交互 10
4.2 爬虫模块 12
4.2.1 requests库的说明及使用 12
4.2.2 bs4库的说明及使用 12
4.2.3 json模块的说明及使用 13
4.2.4 爬虫模块的流程解析 16
4.3 数据分析模块 20
4.3.1 matplolib 20
4.4 反爬虫模块 22
5 结论与发展前景 23
5.1 Web的爬虫系统主要实现代码 23
5.2 xlsx文件 24
参考文献 25
致 谢 26
4 模块化设计
4.1 Tkinter图形界面模块介绍
Tkinter是Python的事实上的标准GUI(图形用户界面)包。 它是Tcl / Tk顶部的薄面向对象层。Tkinter不是Python唯一的工具包。 然而,它是最常用的一种。CameronLaird将保留TkInteri的年度决定称为“Python世界的次要传统之一”。
4.1.1 图形模块的略解
要创建一个图形界面,我们需要首先定义窗口:
import tkinter as tk
window = tk.Tk()
window.title(‘智联招聘爬虫’)
window.geometry(‘700X500’)
通过以上代码,完成对图形界面窗口的名称命名和大小设置。
窗口创建完毕后,进行填充,首先添加背景:
canvans = tk.Canvas(window,height=500,width=700)
image = canvans.create_image(0,0,anchor=‘nw’,image=tk.PhotoImage(flie=‘爬虫_gif.gif’)
canvans.pack()
以上代码完成窗口背景设置,分别对背景图像大小和位置进行的设置,被使用的图像名称为’爬虫_gif.gif’。
为窗口添加文本框,设置文本框的名称和位置:
tk.Label(window,text=“关键字:”).place(x=50,y=150)
var_kwords = tk.StringVar()
为文本框设置默认值
var_kwords.set(‘Python’)
本文中运行Web的爬虫系统后会返回显示对应查询目标行业的薪资的平均值、最大值和最小值,通过文本框的默认值显示。
本文转载自:http://www.biyezuopin.vip/onews.asp?id=16451

#最高工资图
import pandas as pd
from pandas import DataFrame,Series
from matplotlib import pyplot as pltclass data_to_view():def __init__(self,xlsx_name):self.xl_name = xlsx_nameself.max_salary()self.min_salary()self.edu_requirements()def max_salary(self):max_file_name = self.xl_nameread_name_max = "%s.xlsx"%max_file_namedf = pd.read_excel(read_name_max)  # exceldf['工资'][df['工资'].str.findall('-').str.len() != 1] = '0-0'  # 处理数据,把工资一列变成确定的格式low = df['工资'].str.replace('K', '').str.split('-').str[1].astype('float')  # 把工资的列转换成float格式df['工资'] = lowdf = df.sort_values(by="工资")  # 根据工资进行排序low = df['工资']people = df['需求人数'].astype('int')  # 把需求人数一列转换成整型fig = plt.figure(figsize=(12, 6))  # 定义画布,大小为(12,6)axe = fig.add_subplot(1, 1, 1)  # 添加图标plt.rcParams['font.sans-serif'] = ['simhei']  # 显示中文x = low.tolist()y = people.tolist()axe.scatter(x, y, marker='.')max_title_name = max_file_name+"最高工资人数需求散点图"axe.set_title(max_title_name)  # 标题axe.set_xlabel("工 资(单位/千)", fontsize=13)  # x轴标签axe.set_ylabel("需 要 人 数", fontsize=13)  # y轴标签max_svg_name = max_file_name+"最高工资人数需求散点图.svg"plt.savefig(max_svg_name)  # 保存def min_salary(self):min_file_name = self.xl_nameread_name_min = "%s.xlsx"%min_file_namedf = pd.read_excel(read_name_min)  # exceldf['工资'][df['工资'].str.findall('-').str.len() != 1] = '0-0'  # 处理数据,把工资一列变成确定的格式low = df['工资'].str.replace('K', '').str.split('-').str[0].astype('float')  # 把工资的列转换成float格式df['工资'] = lowdf = df.sort_values(by="工资")  # 根据工资进行排序low = df['工资']people = df['需求人数'].astype('int')  # 把需求人数一列转换成整型fig = plt.figure(figsize=(12, 6))  # 定义画布,大小为(12,6)axe = fig.add_subplot(1, 1, 1)  # 添加图标plt.rcParams['font.sans-serif'] = ['simhei']  # 显示中文x = low.tolist()y = people.tolist()axe.scatter(x, y, marker='.')min_title_name =min_file_name + "最低工资人数需求散点图"axe.set_title(min_title_name)  # 标题axe.set_xlabel("工 资(单位/千)", fontsize=13)  # x轴标签axe.set_ylabel("需 要 人 数", fontsize=13)  # y轴标签min_svg_name = min_file_name+'最低工资人数需求散点图.svg'plt.savefig(min_svg_name)  # 保存def edu_requirements(self):cyl_file_name = self.xl_nameread_name_cyl = "%s.xlsx"%cyl_file_namedf = pd.read_excel(read_name_cyl)  # excelnames = df['学历'].value_counts().index.tolist()  # 学历x = range(len(names))  # 定义一个列表,用作X轴的位置y = df['学历'].value_counts().tolist()  # y轴数据plt.rcParams['font.sans-serif'] = ['simhei']  # 显示中文的设置fig = plt.figure(figsize=(12, 6))  # 定义一个画布axe = fig.add_subplot(1, 1, 1)  # 添加图表axe.bar(x, y, tick_label=names)  # 绘制柱状图for i in range(len(names)):axe.text(x[i] - 0.15, y[i] + 2, y[i])  # 显示柱状图柱子上的数字cyl_title_name = read_name_cyl +"学历要求柱状图"axe.set_title(cyl_title_name)  # 添加标题cyl_svg_name = read_name_cyl +'学历要求柱状图.svg'plt.savefig(cyl_svg_name)  # 保存if __name__ == '__mian__':data_to_view()














基于Web的爬虫系统设计与实现相关推荐

  1. scada系统web服务器,基于Web的SCADA系统设计

    基于Web的SCADA系统结构图2.1A2SHPLC A2SHPLC由于增加了CC-Link的专用指令,且内置的性能诸如锂电池.后备RAM.用户存储器.实时时钟和一个灵活的通信口,使其能适应工业现场应 ...

  2. 基于web新闻发布系统设计与实现

    本文采用了HTML语言设计了新闻发布系统,主要功能有:用户登录界面.新闻网页模板.新闻类别管理.新闻发布管理.图片处理模块.新闻查询模块.网友评论模块.后台系统管理.前台系统管理.从而实现对新闻信息的 ...

  3. 基于java基于javaweb的管理系统设计与实现怎样选题思路分享

    首先简单介绍一下自己,,MY IS一名勤奋的程序员JAVA 开发工程师,目前在一家 IT 互联网公司,主要负责公司搬砖的后端开发工作,除了我,团队里都是多年开发经验的老师,累积丰富开发经验,擅长JAV ...

  4. 基于JAVA服务器监控系统设计,远程数字图像监控系统中web服务器的设计与实现...

    摘要: 数字图像监控系统在目前处于小规模发展阶段,系统的核心是监控服务器.在一些小规模的应用中,监控服务器同时还充当着监控终端的角色.但是,大部分监控系统都没有考虑用户权限.安全性.收费模式等方面的问 ...

  5. 基于Java Web考生评分系统设计实现毕业设计源码071114

    摘要 在社会快速发展的影响下,教育事业蓬勃发展,大大增加了学校的数量.多样性.教育质量等要求,使教育的管理和运营比过去更加困难.依照这一现实为基础,设计一个快捷而又方便的考生评分系统是一项十分重要并且 ...

  6. C#毕业设计——基于C#+asp.net+cs的Web Mail邮件收发系统设计与实现(毕业论文+程序源码)——邮件收发系统

    基于C#+asp.net+cs的Web Mail邮件收发系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+cs的Web Mail邮件收发系统设计与实现,文章末尾附有 ...

  7. 基于web的科研项目管理系统设计与实现

    需求: (1)项目申报模块包括申报新项目和我的申报信息. 申报新项目:申报者对新项目进行申报,填写完申报信息并提交后,项目置为新申请状态: 我的申报信息:申报者可以在我的申报信息里查看申报过的项目信息 ...

  8. 【java毕业设计】基于javaEE+原生Servlet+MySql的Web停车场管理系统设计与实现(毕业论文+程序源码)——停车场管理系统

    基于javaEE+原生Servlet+MySql的Web停车场管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生Servlet+MySql的Web停车场管理系统设计 ...

  9. 计算机答疑在线,基于web的在线答疑系统设计

    内容介绍 原文档由会员 香烟无味 发布 基于web的在线答疑系统设计 全文约4100字 论述翔实 摘要:介绍了基于ASP和Web数据库技术实现Internet在线答疑系统的研究与设计,包括系统分析.系 ...

  10. HTML5期末大作业:学校校园网站设计——基于web的静态校园网站系统设计与实现(30页含论文) HTML+CSS+JavaScript

    HTML5期末大作业:学校校园网站设计--基于web的静态校园网站系统设计与实现(30页含论文) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机 ...

最新文章

  1. 【干货】极简体验+免费真的万能嘛?北森Saas第一坑:免费
  2. 【语义分割】ICCV21_Mining Contextual Information Beyond Image for Semantic Segmentation
  3. linux ip地址漂移,Linux 实现高可用性(HA) —之ip 漂移方法(vrrp)
  4. 看板系统的表格动态数据显示
  5. LoadRunner 中的 Unique Number 参数类型小结
  6. jsjquery避免报错的方法
  7. 洛谷 P2804 神秘数字
  8. vc_redist 各版本下载地址
  9. php 死链查询,网站最新死链查询和处理方法
  10. python取余数函数_python中两数相除取余数怎么运算
  11. Win10的Excel打开特别慢问题
  12. 厦大C语言上机 1360 算日期
  13. Git在同一台电脑上连接多个仓库
  14. 将32位的ip二进制串转换为十进制
  15. Mybatis一对多和多对一联系处理
  16. openpyxl中的load_workbook()函数
  17. 汇编中一些常用的debug命令
  18. Empirical Covariance 经验协方差 sklearn
  19. 30岁程序员的转型思考
  20. 从产品小白到产品经理,我用了三个月时间

热门文章

  1. WPS office根目录在哪?_WPS加载项深入开发代码解析-2
  2. 开源应用中心 | KodExplorer高效流畅云端存储协同办公新体验
  3. 交换机TFTP配置备份
  4. 谷歌地图开放俄军事设施高分辨率卫星图
  5. 《汉魏风云》1、速度与激情——无双吕布的悲喜人生
  6. css 按钮按下样式
  7. [JZOJ5618]【NOI2018模拟3.31】华胥梦天
  8. web应用程序的部署
  9. pandas-综合练习
  10. 技嘉主板bios设置方法