python爬虫51job招聘信息下载

本文介绍了一种使用Python爬虫从51Job网站抓取IT行业多个岗位(如Java、Python、C++等)招聘信息的方法。通过解析网页获取详细的工作描述、薪资范围、公司名称和地点等信息,并将数据保存为txt文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用python选取51Job上Java,Php,C++等7项模块进行下载
数据格式呈现如下:
java.txt:
(1):Java 南京擎天科技有限公司 南京 0.7-2万/月 职位描述: 1、负责公司自研产品应用软件的分析、设计、编码; 2
(2):Java 江苏万全集团 南京-浦口区 0.7-2万/月 岗位职责:1.3年以上JAVA开发工作经验,具备扎实的JAVA基
(3):Java 深圳前海橙色魔方信息技术有限公司 南京-雨花台区 0.8-1.5万/月 岗位要求1.参与系统的架构、设计及关键
(4):Java 北京宇天恒瑞科技发展有限公司 南京-建邺区 0.8-1.2万/月 任职资格:1.3年以上服务端开发经验;2.扎
(5):Java 南京国通智能科技有限公司 南京-建邺区 0.8-1.5万/月 1、后台java研发、java代码编写;职位要求
python.txt
(1):Python 江苏天鼎证券投资咨询有限公司 南京-建邺区 1-1.5万/月 岗位要求:1、大专及以上
(2):Python 江苏开博信息科技有限公司 南京-秦淮区 1-1.5万/月 岗位职责:1、 负责江苏银行
(3):Python 江苏盈达信息技术有限公司 南京-建邺区 0.8-1.2万/月 职位描述:一、工作职责
(4):Python 南京熙泰信息技术有限公司 南京 0.8-1万/月 1.懂go语言2.了解docker3
(5):Python 南京硅基智能科技有限公司 南京 1.5-4万/月 1、参与公司产品的整体规划、功能设计
代码:

import urllib.request
import re,time,os

def get_base_url():
    base_url1 = 'https://search.51job.com/list/070200,000000,0000,00,9,99,'
    base_url2 = '%25E5%25BC%2580%25E5%258F%2591%25E5%25B7%25A5%25E7%25A8%258B%25E5%25B8%2588,2,'
    base_model=['Java','Php','C++','Android','Python','Web前端开发^AWeb%25E5%2589%258D%25E7%25AB%25AF',
                '大数据开发^A%25E5%25A4%25A7%25E6%2595%25B0%25E6%258D%25AE']
    base_url=[]
    for i in base_model:
        url1=base_url1+i.split('^A')[-1]+base_url2+'1.html'
        url= base_url1+i.split('^A')[-1]+base_url2
        res = '</ul><span class="td">(.*?)</span>'
        reg = re.compile(res).findall(get_html(url1))
        num_page=re.findall('\d+',reg[0])[0]
        print(num_page)
        for j in range(1,int(num_page)+1):
            base_url.append(i.split('^A')[0]+'^A'+url+str(j)+'.html')
    return base_url


def get_html(url):
    html=urllib.request.urlopen(url).read().decode('gbk')
    return html

def get_a_links(html):
    res = '<a target="_blank" title=".*?" href="(.*?)" onmousedown="">[\s\S]*?<span class="t2"><a target="_blank"' \
          ' title="(.*?)" href="https://jobs.*?\.html">.*?</a></span>[\s\S]*?<span class="t3">(.*?)</span>' \
          '[\s\S]*?<span class="t4">(.*?)</span>[\s\S]*?</div>'
    html_link=re.compile(res).findall(html)
    return html_link

def get_job_content(html):
    res = '<div class="bmsg job_msg inbox">([\s\S]*?)<div class="mt10">'
    content = re.compile(res).findall(html)
    job_content=re.sub('\r|\n|\t|<.*?>|&#\d+;|&nbsp;','',content[0])
    return job_content

def write_to_file(content,file_name,j):
    with open(file_name+'.txt','a+',encoding="utf-8") as f:
        f.write('('+str(j)+'):'+file_name+' '+content+'\n')



if __name__ == '__main__':
    start = time.clock()
    os.chdir('C:/Users/Administrator/PycharmProjects/untitled/venv')
    j,k,m=0,0,0
    u2=[]
    for url in get_base_url():
        url_str=url.split('^A')
        lists1=get_a_links(get_html(url_str[1]))
        for i in range(len(lists1)):
            try:
                j+= 1
                m+=1
                u1=url_str[0]
                if u1!=u2 or len(u2)==0:
                    j=1
                job_content = get_job_content(get_html(list(lists1[i])[0]))
                job_contents=list(lists1[i])[1]+' '+list(lists1[i])[2]+' '+list(lists1[i])[3]+' '+job_content
                write_to_file(job_contents,url_str[0],j)
                u2 = url_str[0]
                print("Current Model:"+u2+" Finished Saved " + str(j) + " articles")
            except Exception:
                k+=1
                print('Analysis Error!!!'+str(k))
                continue
    end = time.clock()
    print('End!!!!!')
    print('success  '+str(m)+'    Error   '+str(k))
    print('Running time: %s Seconds' % (end - start))

亲测可用!

Python爬虫用于网站信息抓取,可以用来获取51job招聘网站上的招聘信息。首先,你需要了解基本的网络请求库,如requests或BeautifulSoup等,它们可以帮助发送HTTP请求并解析HTML内容。 以下是简单的步骤: 1. **安装依赖**: 安装`requests`, `beautifulsoup4` 和 `lxml` 等常用库,如果尚未安装,可以使用以下命令: ``` pip install requests beautifulsoup4 lxml ``` 2. **发送GET请求**: 使用requests.get()函数向51job招聘页面发送请求,并获取网页源码: ```python import requests url = 'https://www.51job.com/' response = requests.get(url) ``` 3. **解析HTML**: 使用BeautifulSoup解析响应内容,找到包含招聘信息的部分,例如职位标题、公司名等: ```python from bs4 import BeautifulSoup soup = BeautifulSoup(response.text, 'lxml') job_elements = soup.find_all('div', class_='job-item') # 可能的class名 ``` 4. **提取数据**: 遍历解析后的元素,提取出所需的信息,如职位名称、公司、薪资等,并将其存储到列表或其他数据结构中。 5. **处理异常**: 要考虑到网络不稳定或网站结构变化的情况,添加适当的错误处理和重试机制。 6. **保存数据**: 最后,你可以将数据保存为CSV文件、数据库记录或是其他格式,视需求而定。 请注意,由于51job等网站通常会有反爬虫策略(如验证码、IP限制),在实际操作时需要遵守网站的robots.txt协议,尊重版权,并使用代理IP以降低被封禁的风险。此外,频繁大量抓取可能会对服务器造成压力,因此应合理设置爬取频率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值