热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python_爬虫项目

1、爬虫——智联招聘信息搜集原文链接1#-*-coding:utf-8-*-2importre3importcsv4importrequests5fromtqdmimporttqd

1、爬虫——智联招聘信息搜集    原文链接

1 #-*- coding: utf-8 -*-
2 import re
3 import csv
4 import requests
5 from tqdm import tqdm
6 from urllib.parse import urlencode
7 from requests.exceptions import RequestException
8
9 def get_one_page(city, keyword, region, page):
10 '''
11 获取网页html内容并返回
12 '''
13 paras = {
14 'jl': city, # 搜索城市
15 'kw': keyword, # 搜索关键词
16 'isadv': 0, # 是否打开更详细搜索选项
17 'isfilter': 1, # 是否对结果过滤
18 'p': page, # 页数
19 're': region # region的缩写,地区,2005代表海淀
20 }
21
22 headers = {
23 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
24 'Host': 'sou.zhaopin.com',
25 'Referer': 'https://www.zhaopin.com/',
26 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
27 'Accept-Encoding': 'gzip, deflate, br',
28 'Accept-Language': 'zh-CN,zh;q=0.9'
29 }
30
31 url = 'https://sou.zhaopin.com/jobs/searchresult.ashx?' + urlencode(paras)
32 try:
33 # 获取网页内容,返回html数据
34 response = requests.get(url, headers=headers)
35 # 通过状态码判断是否获取成功
36 if response.status_code == 200:
37 return response.text
38 return None
39 except RequestException as e:
40 return None
41
42 def parse_one_page(html):
43 '''
44 解析HTML代码,提取有用信息并返回
45 '''
46 # 正则表达式进行解析
47 pattern = re.compile('(.*?).*?' # 匹配职位信息
48 '(.*?).*?' # 匹配公司网址和公司名称
49 '(.*?)', re.S) # 匹配月薪
50
51 # 匹配所有符合条件的内容
52 items = re.findall(pattern, html)
53
54 for item in items:
55 job_name = item[0]
56 job_name = job_name.replace('', '')
57 job_name = job_name.replace('
', '')
58 yield {
59 'job': job_name,
60 'website': item[1],
61 'company': item[2],
62 'salary': item[3]
63 }
64
65 def write_csv_file(path, headers, rows):
66 '''
67 将表头和行写入csv文件
68 '''
69 # 加入encoding防止中文写入报错
70 # newline参数防止每写入一行都多一个空行
71 with open(path, 'a', encoding='gb18030', newline='') as f:
72 f_csv = csv.DictWriter(f, headers)
73 f_csv.writeheader()
74 f_csv.writerows(rows)
75
76 def write_csv_headers(path, headers):
77 '''
78 写入表头
79 '''
80 with open(path, 'a', encoding='gb18030', newline='') as f:
81 f_csv = csv.DictWriter(f, headers)
82 f_csv.writeheader()
83
84 def write_csv_rows(path, headers, rows):
85 '''
86 写入行
87 '''
88 with open(path, 'a', encoding='gb18030', newline='') as f:
89 f_csv = csv.DictWriter(f, headers)
90 f_csv.writerows(rows)
91
92 def main(city, keyword, region, pages):
93 '''
94 主函数
95 '''
96 filename = 'zl_' + city + '_' + keyword + '.csv'
97 headers = ['job', 'website', 'company', 'salary']
98 write_csv_headers(filename, headers)
99 for i in tqdm(range(pages)):
100 '''
101 获取该页中所有职位信息,写入csv文件
102 '''
103 jobs = []
104 html = get_one_page(city, keyword, region, i)
105 items = parse_one_page(html)
106 for item in items:
107 jobs.append(item)
108 write_csv_rows(filename, headers, jobs)
109
110 if __name__ == '__main__':
111 main('北京', 'python',2005 , 10)

智联招聘Python岗位信息搜集

 

转:https://www.cnblogs.com/hellangels333/p/8325886.html



推荐阅读
  • 在今天的实践中,我深入学习了网页图像抓取技术,通过编写爬虫程序批量获取网站上的图片资源。具体来说,我选择了一个包含大量高质量图片的网站作为练习对象,并成功实现了将这些图片批量下载到本地存储。这一过程不仅提升了我对爬虫技术的理解,还增强了我的编程能力。 ... [详细]
  • 可转债数据智能抓取与分析平台优化
    本项目旨在优化可转债数据的智能抓取与分析平台。通过爬取集思录上的可转债信息(排除已发布赎回的债券),并结合安道全教授提出的三条安全线投资策略,新增了建仓线、加仓线和重仓线,以提供更精准的投资建议。 ... [详细]
  • 【Python爬虫实操】 不创作小说,专精网站内容迁移,超高效!(含源代码)
    本文详细介绍了如何利用Python爬虫技术实现高效网站内容迁移,涵盖前端、后端及Android相关知识点。通过具体实例和源代码,展示了如何精准抓取并迁移网站内容,适合对Python爬虫实战感兴趣的开发者参考。 ... [详细]
  • 本文介绍了使用 Python 编程语言高效抓取微博文本和动态网页图像数据的方法。通过详细的示例代码,展示了如何利用爬虫技术获取微博内容和动态图片,为数据采集和分析提供了实用的技术支持。对于对网络数据抓取感兴趣的读者,本文具有较高的参考价值。 ... [详细]
  • 本指南介绍了 `requests` 库的基本使用方法,详细解释了其七个主要函数。其中,`requests.request()` 是构建请求的基础方法,支持其他高级功能的实现。此外,我们还重点介绍了如何使用 `requests.get()` 方法来获取 HTML 网页内容,这是进行网页数据抓取和解析的重要步骤。通过这些基础方法,读者可以轻松上手并掌握网页数据抓取的核心技巧。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 利用树莓派畅享落网电台音乐体验
    最近重新拾起了闲置已久的树莓派,这台小巧的开发板已经沉寂了半年多。上个月闲暇时间较多,我决定将其重新启用。恰逢落网电台进行了改版,回忆起之前在树莓派论坛上看到有人用它来播放豆瓣音乐,便萌生了同样的想法。通过一番调试,终于实现了在树莓派上流畅播放落网电台音乐的功能,带来了全新的音乐享受体验。 ... [详细]
  • Python爬虫入门:深入解析HTTP协议与Requests库的应用
    Python爬虫入门:深入解析HTTP协议与Requests库的应用 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • 在深入研究 React 项目的过程中,特别是在探索 react-router 源码时,我发现了其中蕴含的中间件概念。这激发了我对中间件的进一步思考与整理。本文将详细探讨 Redux 中间件的原理及其在实际项目中的应用,帮助读者更好地理解和使用这一强大工具。通过具体示例和代码解析,我们将揭示中间件如何提升应用的状态管理和异步操作处理能力。 ... [详细]
  • 在第10天的夜灵HTML日志中,我们深入探讨了浏览器兼容性和高级选择器的应用。CSS3引入了许多新属性,但在旧版浏览器中的支持情况并不理想。然而,目前主流浏览器的最新版本已全面支持这些新特性。对于那些不支持CSS3新属性的浏览器,我们提供了多种解决方案,以确保网站在不同环境下的兼容性和用户体验。此外,我们还详细讨论了如何利用高级选择器提升页面布局的灵活性和可维护性。 ... [详细]
  • Python 中 json.dumps() 和 json.loads() 的使用方法详解——Python 面试与 JavaScript 面试必备知识
    在 Python 中,`json.dumps()` 和 `json.loads()` 是处理 JSON 数据的核心函数。`json.dumps()` 用于将字典或其他可序列化对象转换为 JSON 格式的字符串,而 `json.loads()` 则用于将 JSON 字符串解析为 Python 对象。本文详细介绍了这两个函数的使用方法及其在 Python 和 JavaScript 面试中的重要性,帮助读者掌握这些关键技能。 ... [详细]
  • 在使用 `requests` 库进行 HTTP 请求时,如果遇到 `requests.exceptions.SSLError: HTTPSConnectionPool` 错误,通常是因为 SSL 证书验证失败。解决这一问题的方法包括:检查目标网站的 SSL 证书是否有效、更新本地的 CA 证书库、禁用 SSL 验证(不推荐用于生产环境)或使用自定义的 SSL 上下文。此外,确保 `requests` 库和相关依赖项已更新到最新版本,以避免潜在的安全漏洞。 ... [详细]
  • Sanic 是一个类似于 Flask 的 Python 3.5 Web 服务器,以其出色的写入速度而著称。与 Flask 不同,Sanic 支持异步请求处理,这使得它在处理高并发请求时表现更加出色。通过利用 Python 的异步特性,Sanic 能够显著提高应用程序的性能和响应能力,适用于构建高性能的异步 Web 应用。 ... [详细]
  • 在Python编程中,探讨了并发与并行的概念及其区别。并发指的是系统同时处理多个任务的能力,而并行则指在同一时间点上并行执行多个任务。文章详细解析了阻塞与非阻塞操作、同步与异步编程模型,以及IO多路复用技术的应用。通过模拟socket发送HTTP请求的过程,展示了如何创建连接、发送数据和接收响应,并强调了默认情况下socket的阻塞特性。此外,还介绍了如何利用这些技术优化网络通信性能和提高程序效率。 ... [详细]
author-avatar
大眼刘
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有