欢迎光临散文网 会员登陆 & 注册

python爬取网站招聘信息

2022-10-23 23:01 作者:沐笙--ms  | 我要投稿


 

《python程序设计课程设计报告》

 


题目

一、 设计方案(思路)

爬取网页为:https://www.jobui.com/jobs/  爬取对象为:python开发工程师,职位地点:厦门。将爬取的结果存放在excel文件中,存储信息包括:职位名称、经验、学历、薪资

什么叫爬虫呢?

就是使用编程语言所编写的程序,在互联网上模拟器获取(大量)数据

 

浏览器工作原理 : 发请求,得响应

爬虫的工作原理:发请求,得响应,数据的解析,存储

 

直接使用requests库,在不设置任何header的情况下,网站直接不返回数据。同一个ip连续访问多次,直接封掉ip。

反爬的一种手段---(伪装成浏览器)

 headers= {}

爬取数据的步骤

安装python和python库requests、BeautifulSoup、openpyxl

 

1. 找到要爬取的目标网站,发送请求 requests

2. 分析有效的url

3. 提取数据有用的数据

4. 数据的存储

 

爬虫:采集数据,从网页上面爬取到想要的内容

 

怎么可以获取数据?

静态网页:打开网页,获取源码,从源码中间提取想要的内容

      动态网页:找到请求,请求方式

 

 

        

二、 程序流程图

 


三、 代码

 

import requests    #向服务器发送请求的模块(相当于浏览)
from bs4 import BeautifulSoup   #用于解析和提取数据
import openpyxl  #读写excel文件
import time

lst=[]
def send_requests(id,page):
    url='https://www.jobui.com/jobs?cityKw=%E5%8E%A6%E9%97%A8&jobKw=python%E5%BC%80%E5%8F%91%E5%B7%A5%E7%A8%8B'.format(id,page)  #相当于浏览器的地址栏

    #用于反爬的一种手段―(伪装成浏览器)
    headers= {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'}

    resp=requests.get(url,headers=headers)   #相当于在浏览器的地址栏中输入网址之后回车的过程

    return resp.text

def parse_html(html):   #html代表是从服务器端响应回来的数据(内容)
    bs=BeautifulSoup(html,'html.parser')    #得到BeautifulSoup的对象
    job_lst=bs.find_all('div',class_='c-job-list')    #得到包含职位的div--15
    for item in job_lst:     #分别遍历每一个职位数据每个item就是一个c-job-lst
        name=item.find('h3').text  #职位名称
        div_tag=item.find('div',class_='job-desc')
        span_tag=div_tag.find_all('span')
        url=item.find('a',class_='job-name')['href']   #提取class样式为job-namea标签,获取属性为href的值
        lst.append([name,span_tag[0].text,span_tag[1].text,span_tag[2].text])

    #存储
def save(lst):
        wk=openpyxl.Workbook()  #打开工作蒲
        sheet=wk.active   #活动页(凹下去的sheet
        #遍历列表
        for item in lst:
            sheet.append(item)
            #保存文件
            wk.save('招聘信息.xlsx')

#启动爬虫程序
def start(id,pages):

    for page in range(1,pages+1) :
        resp_data=send_requests(id,page) #发送请求
        parse_html(resp_data)
        time.sleep(2)
    save(lst)


if __name__ == '__main__':
         pages=3
         start(id,pages)

 

四、 结果分析

 


 

五、 总结

大家找工作都是通过各种招聘app,信息全部罗列出来,可是招聘信息有一些是错综复杂的。而且不能把全部的信息全部罗列出来,这样也让人很苦恼,所以今天我们就通过爬虫技术,为大家解决这个问题。首先我们的爬取目标是获取招聘信息,并批量把职位名称经验、工资 、学历等详细资料做成excel。这里我们爬取网页为:https://www.jobui.com/jobs/为例。在获取数据之前简单的对网站进行了分析,和对该网站上的反爬等操作

 


 

 

 

 

 


python爬取网站招聘信息的评论 (共 条)

分享到微博请遵守国家法律