首先进入该网站的https://www.51job.com/robots.txt页面

给出提示:

 找不到该页       File not found

 您要查看的页已删除,或已改名,或暂时不可用。

 请尝试以下操作:
如果您已经在地址栏中输入该网页的地址,请确认其拼写正确。
打开 www.51job.com 主页,然后查找指向您感兴趣信息的链接。
单击后退按钮,尝试其他链接。

  注:

  • 网络爬虫:自动或人工识别robots.txt,再进行内容爬取
  • 约束性:robots协议建议但非约束性,不遵守可能存在法律风险

如果一个网站不设置robots协议说明所有内容都可以爬取,所以为可爬取内容。

源程序如下:

  

 #!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File : HtmlParser.py
# @Author: 赵路仓
# @Date : 2020/2/28
# @Desc : 前程无忧求职网的爬虫程序
# @Contact : 398333404@qq.com from bs4 import BeautifulSoup
import requests
import csv
import re
import io # 请求头
head = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'
}
# 链接
url = "https://search.51job.com/list/000000,000000,0000,00,9,99,%25E8%25BD%25AF%25E4%25BB%25B6,2,1.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare=" # csv写入表头
def headcsv():
with open('/position.csv', 'w', encoding='utf-8', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(["职位", "公司", "所在地", "薪酬", "日期", "网址"]) # txt写入表头
def headtxt():
ftxt = open('E:/data/position.txt', 'w', encoding='utf-8')
ftxt.write("职位 公司 所在地 薪酬 日期 网址")
ftxt.close() def position(url, head):
# fcsv = open('/position.csv', 'a', encoding='utf-8', newline='')
ftxt = open('E:/data/position.txt', 'a', encoding='utf-8')
try:
r = requests.get(url, headers=head, timeout=3)
# 设置解析编码格式
r.encoding = r.apparent_encoding
print(r.apparent_encoding)
# 打印状态码
print(r.status_code)
# 打印页面代码
# print(r.text)
# print(soup.prettify())
text = r.text
soup = BeautifulSoup(text, 'html.parser')
# 一条招聘信息
item = soup.find_all(class_='el', recursive=True)
num = 0
for i in item:
num += 1
if num > 16:
itemdetail = i.text.replace(" ", "").replace("\n", " ").replace(" ", " ").lstrip() + i.find("a").attrs['href']
print(itemdetail)
ftxt.write(itemdetail.replace("\n","")+'\r')
print("写入成功")
ftxt.close()
except:
print("爬取职位过程中出错!") def write(url, head):
for i in range(1, 2000):
url = "https://search.51job.com/list/000000,000000,0000,00,9,99,%25E8%25BD%25AF%25E4%25BB%25B6,2,"+str(i)+".html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare="
print(url)
position(url, head) if __name__ == "__main__":
# head()
write(url, head)

所爬取条目分布为职位 公司 所在地 薪酬 日期 网址 ,保存路径为E:/data/position.txt可自行修改路径或者文件格式。

[Python] 前程无忧招聘网爬取软件工程职位 网络爬虫 https://www.51job.com的更多相关文章

  1. python 手机app数据爬取

    目录 一:爬取主要流程简述 二:抓包工具Charles 1.Charles的使用 2.安装 (1)安装链接 (2)须知 (3)安装后 3.证书配置 (1)证书配置说明 (2)windows系统安装证书 ...

  2. 【图文详解】scrapy爬虫与动态页面——爬取拉勾网职位信息(2)

    上次挖了一个坑,今天终于填上了,还记得之前我们做的拉勾爬虫吗?那时我们实现了一页的爬取,今天让我们再接再厉,实现多页爬取,顺便实现职位和公司的关键词搜索功能. 之前的内容就不再介绍了,不熟悉的请一定要 ...

  3. [爬虫]用python的requests模块爬取糗事百科段子

    虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “HTTP for Humans”,说明使用更 ...

  4. python爬取拉勾网职位数据

    今天写的这篇文章是关于python爬虫简单的一个使用,选取的爬取对象是著名的招聘网站--拉钩网,由于和大家的职业息息相关,所以爬取拉钩的数据进行分析,对于职业规划和求职时的信息提供有很大的帮助. 完成 ...

  5. Python 招聘信息爬取及可视化

    自学python的大四狗发现校招招python的屈指可数,全是C++.Java.PHP,但看了下社招岗位还是有的.于是为了更加确定有多少可能找到工作,就用python写了个爬虫爬取招聘信息,数据处理, ...

  6. Python的scrapy之爬取51job网站的职位

    今天老师讲解了Python中的爬虫框架--scrapy,然后带领我们做了一个小爬虫--爬取51job网的职位信息,并且保存到数据库中 用的是Python3.6  pycharm编辑器 爬虫主体: im ...

  7. Python的scrapy之爬取顶点小说网的所有小说

    闲来无事用Python的scrapy框架练练手,爬取顶点小说网的所有小说的详细信息. 看一下网页的构造: tr标签里面的 td 使我们所要爬取的信息 下面是我们要爬取的二级页面 小说的简介信息: 下面 ...

  8. python网络爬虫之解析网页的XPath(爬取Path职位信息)[三]

    目录 前言 XPath的使用方法 XPath爬取数据 后言 @(目录) 前言 本章同样是解析网页,不过使用的解析技术为XPath. 相对于之前的BeautifulSoup,我感觉还行,也是一个比较常用 ...

  9. python爬虫(三) 用request爬取拉勾网职位信息

    request.Request类 如果想要在请求的时候添加一个请求头(增加请求头的原因是,如果不加请求头,那么在我们爬取得时候,可能会被限制),那么就必须使用request.Request类来实现,比 ...

随机推荐

  1. Java爬虫框架之WebMagic

    一.介绍 WebMagic是一个简单灵活的Java爬虫框架.基于WebMagic,你可以快速开发出一个高效.易维护的爬虫. 二.如何学习 1.查看官网 官网地址为:http://webmagic.io ...

  2. SQL Server 常用的数据类型

    1. 字符串数据类型    char        此数据类型可存储1~8000个定长字符串,字符串长度在创建时指定:如未指定,默认为char(1).每个字符占用1byte存储空间.    nchar ...

  3. Windows下查看dll被哪个进程调用

    卸载程序,结果没卸载干净---程序的安装目录中还剩下一个dll文件.想删,结果系统提示说dll文件被某个进程占用了,不让删. 先前碰到这种做法,我都是直接使用unlocker先unlock一下,然后删 ...

  4. python dict 中的中文处理

    dict1 = {'中':'国 '} print dict1 ##{'\xc3\xa4\xc2\xb8\xc2\xad': '\xc3\xa5\xc2\x9b\xc2\xbd'} import jso ...

  5. HDU_5058_set

    http://acm.hdu.edu.cn/showproblem.php?pid=5058 set容器的使用,set中保持元素的唯一性和有序性. 也可以用排序加离散化来模拟. #include< ...

  6. 《Python学习手册 第五版》 -第7章 字符串基础

    本章内容是关于字符串的,字符串是编程中经常遇到的问题,本章的内容不是包含所有字符串的讲解,而是针对其最基本的内容进行说明,后续的相关章节会根据需要进行扩展和说明,例如后续的第37章内容会讲解Unico ...

  7. 《Python学习手册 第五版》 -第5章 数值类型

    本章是承接第四章整体说明之后,将对”数值类型“展开详细的说明 数值类型这一章主要通过一下几个内容来讲解: 1.数值类型有哪些? 2.表达式运算符:有哪些?有什么规范? 3.数值的显示格式 接下来,从第 ...

  8. DataGuard---->主库和备库都配置 db_file_name_convert和log_file_name_convert的作用

    一.参数说明 [1] db_file_name_convert db_file_name_convert 主数据库和备用数据库的数据文件转换目录对映(如果两数据库的目录结构不一样),如果有多个对映,逐 ...

  9. Jmeter——使用JSR223元件实现RSA登录加密

    一.RSA加密简介 RSA加密是一种非对称加密.可以在不直接传递密钥的情况下,完成解密.这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险.是由一对密钥来进行加解密的过程,分别称为公钥和私 ...

  10. java架构之路-(微服务专题)feign的基本使用和nacos的配置中心

    上次回归: 上次我们说了ribbon的基本使用,包括里面的内部算法,算法的细粒度配置,还有我们自己如何实现我们自己的算法,主要还是一些基本使用的知识,还不会使用ribbon的小伙伴可以回去看一下上一篇 ...