本次抓取的是智联招聘网站搜索“数据分析师”之后的信息。

python版本: python3.5。

我用的主要package是 Beautifulsoup + Requests+csv

另外,我将招聘内容的简单描述也抓取下来了。

文件输出到csv文件后,发现用excel打开时有些乱码,但用文件软件打开(如notepad++)是没有问题的。

为了能用Excel打开时正确显示,我用pandas转换了以下,并添加上列名。转化完后,就可以正确显示了。关于用pandas转化,可以参考我的博客:

由于招聘内容的描述较多,最后将csv文件另存为excel文件,并调整下格式,以便于查看。

最后效果如下:

实现代码如下:信息爬取的代码如下:

  1. # Code based on Python 3.x
  2. # _*_ coding: utf-8 _*_
  3. # __Author: "LEMON"
  4.  
  5. from bs4 import BeautifulSoup
  6. import requests
  7. import csv
  8.  
  9. def download(url):
  10. headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0'}
  11. req = requests.get(url, headers=headers)
  12. return req.text
  13.  
  14. def get_content(html):
  15. soup = BeautifulSoup(html, 'lxml')
  16. body = soup.body
  17. data_main = body.find('div', {'class': 'newlist_list_content'})
  18. tables = data_main.find_all('table')
  19.  
  20. zw_list = []
  21. for i,table in enumerate(tables):
  22. if i == 0:
  23. continue
  24. temp = []
  25. tds = table.find('tr').find_all('td')
  26. zwmc = tds[0].find('a').get_text()
  27. zw_link = tds[0].find('a').get('href')
  28. fkl = tds[1].find('span').get_text()
  29. gsmc = tds[2].find('a').get_text()
  30. zwyx = tds[3].get_text()
  31. gzdd = tds[4].get_text()
  32. gbsj = tds[5].find('span').get_text()
  33.  
  34. tr_brief = table.find('tr', {'class': 'newlist_tr_detail'})
  35. brief = tr_brief.find('li', {'class': 'newlist_deatil_last'}).get_text()
  36.  
  37. temp.append(zwmc)
  38. temp.append(fkl)
  39. temp.append(gsmc)
  40. temp.append(zwyx)
  41. temp.append(gzdd)
  42. temp.append(gbsj)
  43. temp.append(brief)
  44. temp.append(zw_link)
  45.  
  46. zw_list.append(temp)
  47. return zw_list
  48.  
  49. def write_data(data, name):
  50. filename = name
  51. with open(filename, 'a', newline='', encoding='utf-8') as f:
  52. f_csv = csv.writer(f)
  53. f_csv.writerows(data)
  54.  
  55. if __name__ == '__main__':
  56.  
  57. basic_url = 'http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E5%85%A8%E5%9B%BD&kw=%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%B8%88&sm=0&p='
  58.  
  59. number_list = list(range(90)) # total number of page is 90
  60. for number in number_list:
  61. num = number + 1
  62. url = basic_url + str(num)
  63. filename = 'zhilian_DA.csv'
  64. html = download(url)
  65. # print(html)
  66. data = get_content(html)
  67. # print(data)
  68. print('start saving page:', num)
  69. write_data(data, filename)

用pandas转化的代码如下:

  1. # Code based on Python 3.x
  2. # _*_ coding: utf-8 _*_
  3. # __Author: "LEMON"
  4.  
  5. import pandas as pd
  6.  
  7. df = pd.read_csv('zhilian_DA.csv', header=None)
  8.  
  9. df.columns = ['职位名称', '反馈率', '公司名称', '月薪', '工作地点',
  10. '发布日期', '招聘简介', '网页链接']
  11.  
  12. # 将调整后的dataframe文件输出到新的csv文件
  13. df.to_csv('zhilian_DA_update.csv', index=False)

用python抓取求职网站信息的更多相关文章

  1. 使用python抓取美团商家信息

    抓取美团商家信息 import requests from bs4 import BeautifulSoup import json url = 'http://bj.meituan.com/' ur ...

  2. Python抓取成都房价信息

    Python里scrapy爬虫 scrapy爬虫,正好最近成都房价涨的厉害,于是想着去网上抓抓成都最近的房价情况,顺便了解一下,毕竟咱是成都人,得看看这成都的房子我以后买的起不~ 话不多说,进入正题: ...

  3. 无比强大!Python抓取cssmoban网站的模版并下载

    Python实现抓取http://www.cssmoban.com/cssthemes网站的模版并下载 实现代码 # -*- coding: utf-8 -*- import urlparse imp ...

  4. python爬取电影网站信息

    一.爬取前提1)本地安装了mysql数据库 5.6版本2)安装了Python 2.7 二.爬取内容 电影名称.电影简介.电影图片.电影下载链接 三.爬取逻辑1)进入电影网列表页, 针对列表的html内 ...

  5. python抓取贝壳房源信息

    分析了贝壳的房源信息数据,发现地址链接的参数传递是有规律的 https://tj.ke.com/chengjiao/a3l4/ a3 实际表示的 l4 表示的是 然后 将复合条件拼成一个字符串,带过去 ...

  6. 抓取某网站信息时遇到的问题及解决 The character set provided in ContentType is invalid. Cannot read content as string using an invalid character set

    var response = httpClient.SendAsync(requestMessage).Result; content = response.Content.ReadAsStringA ...

  7. Python爬虫实战---抓取图书馆借阅信息

    Python爬虫实战---抓取图书馆借阅信息 原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约 ...

  8. Python 抓取网页并提取信息(程序详解)

    最近因项目需要用到python处理网页,因此学习相关知识.下面程序使用python抓取网页并提取信息,具体内容如下: #---------------------------------------- ...

  9. 用python抓取智联招聘信息并存入excel

    用python抓取智联招聘信息并存入excel tags:python 智联招聘导出excel 引言:前一阵子是人们俗称的金三银四,跳槽的小朋友很多,我觉得每个人都应该给自己做一下规划,根据自己的进步 ...

随机推荐

  1. PariticalFilter在MFC上的运行,源代码公开

    由于项目需要,进行过一段时间的 PariticalFilter 研究.主要的工作就是将网络上的Console代码和Mfc融合在一起,并且添加了Mfc端的控制功能.       程序还有不完善的地方,现 ...

  2. DTLS 技术要点解析

    一.DTLS DTLS 是指 Datagram Transport Level Security,即数据报安全传输协议: 其提供了UDP 传输场景下的安全解决方案,能防止消息被窃听.篡改.身份冒充等问 ...

  3. Wireshark网络抓包(三)——网络协议

    一.ARP协议 ARP(Address Resolution Protocol)地址解析协议,将IP地址解析成MAC地址. IP地址在OSI模型第三层,MAC地址在OSI第二层,彼此不直接通信: 在通 ...

  4. 内功心法 -- java.util.ArrayList<E> (5)

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...

  5. Exiting the Matrix: Introducing Metasploit's Hardware Bridge

    Metasploit is an amazing tool. You can use it to maneuver through vast networks, pivoting through se ...

  6. UI进阶 即时通讯之XMPP登录、注册

    1.XMPP环境搭建 http://www.cnblogs.com/fearlessyyp/p/5506644.html 第一次打开可能会有点儿慢,图片很多,步骤很详细,祝搭建成功. 2.工程中添加X ...

  7. java学习阶段三:运算符和结构学习

    import java.util.Scanner;/* * JAVA中运算符的学习: * 算术运算符:+.-.*./ 和 %,两个整数相除,结果还是整数. * 赋值运算符:=.+=.-=.*=./=. ...

  8. Windows环境下安装配置Teamcity配合git自动发布mvc,webapi站点

    以下是本人配置Teamcity具体环境和步骤,只实现了项目发布,打包.Nodejs npm gulp没有配置成功,后期补上. 1 环境安装 本人使用的是windows7 sp1 64位系统,(.net ...

  9. 如何让 Git 忽略掉文件中的特定行内容?

    近期在git遇到几个问题,让我重新认识到git的强大性,下面列出来记录一下 有一个数据库的配置文件,在用 git add 添加到 index file 时不能透露了相关配置.而如果用 .gitigno ...

  10. c++编程思想(一)--对象导言

    回过头来看c++编程思想第一章,虽然只是对c++知识的一个总结,并没有实质性知识点,但是收获还是蛮多的! 下面感觉是让自己茅塞顿开的说法,虽然含义并不是很准确,但是很形象(自己的语言): 1.类描述了 ...