用python抓取求职网站信息

这篇文章介绍用python抓取求职网站信息

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

python版本: python3.5。

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

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

立即学习“Python免费学习笔记(深入)”;

 

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

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

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

 

最后效果如下: 用python抓取求职网站信息

 

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

# Code based on Python 3.x# _*_ coding: utf-8 _*_# __Author: "LEMON"from bs4 import BeautifulSoupimport requestsimport csvdef download(url):    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0'}    req = requests.get(url, headers=headers)    return req.textdef get_content(html):    soup = BeautifulSoup(html, 'lxml')    body = soup.body    data_main = body.find('div', {'class': 'newlist_list_content'})    tables = data_main.find_all('table')    zw_list = []    for i,table in enumerate(tables):        if i == 0:            continue        temp = []        tds = table.find('tr').find_all('td')        zwmc = tds[0].find('a').get_text()        zw_link = tds[0].find('a').get('href')        fkl = tds[1].find('span').get_text()        gsmc = tds[2].find('a').get_text()        zwyx = tds[3].get_text()        gzdd = tds[4].get_text()        gbsj = tds[5].find('span').get_text()        tr_brief = table.find('tr', {'class': 'newlist_tr_detail'})        brief = tr_brief.find('li', {'class': 'newlist_deatil_last'}).get_text()        temp.append(zwmc)        temp.append(fkl)        temp.append(gsmc)        temp.append(zwyx)        temp.append(gzdd)        temp.append(gbsj)        temp.append(brief)        temp.append(zw_link)        zw_list.append(temp)    return zw_listdef write_data(data, name):    filename = name    with open(filename, 'a', newline='', encoding='utf-8') as f:        f_csv = csv.writer(f)        f_csv.writerows(data)if __name__ == '__main__':    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='    number_list = list(range(90)) # total number of page is 90    for number in number_list:        num = number + 1        url = basic_url + str(num)        filename = 'zhilian_DA.csv'        html = download(url)        # print(html)        data = get_content(html)        # print(data)        print('start saving page:', num)        write_data(data, filename)

登录后复制

用pandas转化的代码如下:

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

登录后复制

以上就是用python抓取求职网站信息的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2276318.html

(0)
上一篇 2025年2月27日 15:06:50
下一篇 2025年2月18日 04:51:08

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 一个21行Python代码实现拼写检查器的方法

    引入 大家在使用谷歌或者百度搜索时,输入搜索内容时,谷歌总是能提供非常好的拼写检查,比如你输入 speling,谷歌会马上返回 spelling。下面是用21行python代码实现的一个简易但是具备完整功能的拼写检查器。 代码 import…

    编程技术 2025年2月27日
    200
  • 17个Python奇技淫巧分享

    显示有限的接口到外部 当发布python第三方package时,并不希望代码中所有的函数或者class可以被外部import,在init.py中添加all属性,该list中填写可以import的类或者函数名, 可以起到限制的import的作…

    2025年2月27日
    200
  • python学习进阶之socket详细介绍

    Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,通常也称作”套接字”,用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。 网络上的两个程序通过一个…

    编程技术 2025年2月27日
    200
  • 关于python的super()的作用和原理详细介绍

    Python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this),用于传递对象本身,而在调用的时候则不必显式传递,系统会自动传递。 今天我们介绍的主角是super(), 在类的继承里面super()非常常用, …

    编程技术 2025年2月27日
    200
  • 如何在Python中添加自定义模块

    一般来说,我们会将自己写的python模块与python自带的模块分开存放以达到便于维护的目的。那么如何在python中添加自定义的模块呢? 在解答这个问题之前,我们首先要明确两点: 1.严格区分包(package)和文件夹。包的定义就是包…

    编程技术 2025年2月27日
    200
  • 详解Python判断上传文件类型

    在开发上传服务时,经常需要对上传的文件进行过滤。 本文为大家提供了python通过文件头判断文件类型的方法,非常实用。 代码如下 import struct # 支持文件类型 # 用16进制字符串的目的是可以知道文件头是多少字节 # 各种文…

    编程技术 2025年2月27日
    200
  • 详解Python使用signal模块实现定时执行方法

    在liunx系统中要想每隔一分钟执行一个命令,最普遍的方法就是crontab了,如果不想使用crontab,经同事指点在程序中可以用定时器实现这种功能,于是就开始摸索了,发现需要一些信号的知识… 查看你的linux支持哪些信号:…

    编程技术 2025年2月27日
    200
  • 详解python读取与写入csv格式文件方法

    python读取与写入csv格式文件 在数据分析中经常需要从csv格式的文件中存取数据以及将数据写书到csv文件中。将csv文件中的数据直接读取为dict类型和dataframe是非常方便也很省事的一种做法,以下代码以鸢尾花数据为例。 cs…

    编程技术 2025年2月27日
    200
  • 解析Python常用的机器学习库

    python在科学计算中用途广泛:计算机视觉、人工智能、数学、天文等。它同样适用于机器学习也是意料之中的事。 这篇文章就列举并描述Python的最有用的机器学习工具和库。这个列表中,我们不要求这些库是用Python写的,只要有Python接…

    编程技术 2025年2月27日
    200
  • Python开发WEB框架Flask详细介绍

    flask简介 Flask是一个相对于Django而言轻量级的Web框架。 和Django大包大揽不同,Flask建立于一系列的开源软件包之上,这其中 最主要的是WSGI应用开发库Werkzeug和模板引擎Jinja: 策略 :werkze…

    2025年2月27日 编程技术
    200

发表回复

登录后才能评论