一、观察网页
1.进入网页
首先通过谷歌浏览器搜索“职友集官网”,其网址为:
https://www.jobui.com/
2.判断静态网页还是动态网页
打开我们求职意向的公司比如“微软公司”,进入F12开发者界面。将任意一求职岗位复制后在源代码处通过CTRL+F搜索相关信息,发现是否可以查到相同数据,若有,则是静态网页。因此,该网站为静态网站。
二、发送请求
1.导入第三方库
导入要使用的库,代码如下:
import requests from bs4 import BeautifulSoup import openpyxl #用于读写Excel文件 import time
2.请求数据
接下来提取网页基本属性,放入请求头参数,把python代码伪装成浏览器,对服务器发送请求。
代码展示如下:
url='https://www.jobui.com/company/64899/jobs/' headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36'} resp=requests.get(url,headers=headers) print(resp.text)
运行结果为:
以上是以微软公司网址为例进行数据的请求,需要提及的是如果我们想看其他公司的招聘信息的时候,每次在以上代码进行修改网址是具有局限性的。因此我们在地址栏处进行改变,我们把可变的改成该函数的参数,代码如下:
lst=[] def send_request(id,page): url='https://www.jobui.com/company/{0}/jobs/p{1}'.format(id,page) headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36'} resp=requests.get(url,headers=headers) return resp.text
三、解析数据和提取数据
在源代码定位div标签,得到包含职位的div,然后分别遍历每一个职位数据,每个item就是一个c-job-lst,从中查找职位名称h3,再定义name,最后进行输出。
代码如下:
def parse_html(html): bs=BeautifulSoup(html,'html.parser') #得到BeautifulSoup的对象 job_lst=bs.find_all('div',class_='c-job-list') #得到包含职位的div for item in 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-name的a的标签,获取属性为href的值 lst.append([name,span_tag[0].text,span_tag[1].text,'https://www.jobui.com'+url]) def start(id,pages): for page in range(1,pages+1): resp_data=send_request(id,page) #发送请求 parse_html(resp_data) time.sleep(2) save(lst) if __name__ == '__main__': id='64899' pages=3 start(id,pages)
四、储存数据
创建工作簿并将获取的数据保存至新建的excel表格中,代码如下:
def save(lst): wk=openpyxl.Workbook() sheet=wk.active for item in lst: sheet.append(item) wk.save('招聘信息.xlsx')
五、全套代码及运行结果
全套代码如下:
import requests from bs4 import BeautifulSoup import openpyxl import time lst=[] def send_request(id,page): url='https://www.jobui.com/company/{0}/jobs/p{1}'.format(id,page) headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 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-name的a的标签,获取属性为href的值 lst.append([name,span_tag[0].text,span_tag[1].text,'https://www.jobui.com'+url]) def save(lst): wk=openpyxl.Workbook() #打开工作薄 sheet=wk.active for item in lst: sheet.append(item) wk.save('招聘信息.xlsx') def start(id,pages): for page in range(1,pages+1): resp_data=send_request(id,page) parse_html(resp_data) time.sleep(2) save(lst) if __name__ == '__main__': id='64899' pages=3 start(id,pages)
运行结果如下:
以上就是“Python爬取职友集网站招聘信息”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。