如何进行基于bs4的拉勾网AI相关工作爬虫实现
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,本篇文章给大家分享的是有关如何进行基于bs4的拉勾网AI相关工作爬虫实现,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。年初大家可能是各种
千家信息网最后更新 2025年02月04日如何进行基于bs4的拉勾网AI相关工作爬虫实现
本篇文章给大家分享的是有关如何进行基于bs4的拉勾网AI相关工作爬虫实现,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
年初大家可能是各种跳槽吧,看着自己身边的人也是一个个的要走了,其实是有一点伤感的。人各有志吧,不多评论。这篇文章主要是我如何抓取拉勾上面AI相关的职位数据,其实抓其他工作的数据原理也是一样的,只要会了这个,其他的都可以抓下来。一共用了不到100行代码,主要抓取的信息有"职位名称","月薪","公司名称","公司所属行业","工作基本要求(经验,学历)","岗位描述"等。涉及的工作有"自然语言处理","机器学习","深度学习","人工智能","数据挖掘","算法工程师","机器视觉","语音识别","图像处理"等几大类。
下面随便截个图给大家看下,我们想要的信息
然后看下我们要的信息在哪里
然后职位详细信息是的url就在那个href里面,所以关键是要取到那个href就OK了。
下面直接上代码
首先我们需要判断一个url是不是合法的url,就是isurl方法。
urlhelper方法是用来提取url的html内容,并在发生异常时,打一条warning的警告信息
import urllib.request
from bs4 import BeautifulSoup
import pandas as pd
import requests
from collections import OrderedDict
from tqdm import tqdm, trange
import urllib.request
from urllib import error
import logging
logging.basicConfig(level=logging.WARNING)
def isurl(url):
if requests.get(url).status_code == 200:
return True
else:
return False
def urlhelper(url):
try:
req = urllib.request.Request(url)
req.add_header("User-Agent",
"Mozilla/5.0 (Windows NT 6.1; WOW64)"
" AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/45.0.2454.101 Safari/537.36")
req.add_header("Accept", "*/*")
req.add_header("Accept-Language", "zh-CN,zh;q=0.8")
data = urllib.request.urlopen(req)
html = data.read().decode('utf-8')
return html
except error.URLError as e:
logging.warning("{}".format(e))
下面就是爬虫的主程序了,里面需要注意的是异常的处理,很重要,不然万一爬了一半挂了,前面爬的又没保存就悲剧了。还有一个是想说BeautifulSoup这个类真的是十分方便,熟练使用能节省很多时间。
import urllib.request
from bs4 import BeautifulSoup
import pandas as pd
import requests
from collections import OrderedDict
from tqdm import tqdm, trange
import urllib.request
from urllib import error
import logging
names = ['ziranyuyanchuli', 'jiqixuexi', 'shenduxuexi', 'rengongzhineng',
'shujuwajue', 'suanfagongchengshi', 'jiqishijue', 'yuyinshibie',
'tuxiangchuli']
for name in tqdm(names):
savedata = []
page_number = 0
for page in range(1, 31):
page_number += 1
if page_number % 5 == 0:
print(page_number)
rooturl = 'https://www.lagou.com/zhaopin/{}/{}/'.format(name, page)
if not isurl(rooturl):
continue
html = urlhelper(rooturl)
soup = BeautifulSoup(html, "lxml")
resp = soup.findAll('div', attrs={'class': 's_position_list'})
resp = resp[0]
resp = resp.findAll('li', attrs={'class': 'con_list_item default_list'})
for i in trange(len(resp)):
position_link = resp[i].findAll('a', attrs={'class': 'position_link'})
link = position_link[0]['href']
if isurl(link):
htmlnext = urlhelper(link)
soup = BeautifulSoup(htmlnext, "lxml")
try:
# 职位描述
job_bt = soup.findAll('dd',
attrs={'class': 'job_bt'})[0].text
except:
continue
try:
# 工作名称
jobname = position_link[0].find('h4').get_text()
except:
continue
try:
# 工作基本要求
p_bot = resp[i].findAll('div',
attrs={'class': 'p_bot'})[0].text
except:
continue
try:
# 月薪
money = resp[i].findAll('span',
attrs={'class': 'money'})[0].text
except:
continue
try:
# 行业
industry = resp[i].findAll('div',
attrs={'class': 'industry'})[0].text
except:
continue
try:
# 公司名字
company_name = resp[i].findAll(
'div', attrs={'class': 'company_name'})[0].text
except:
continue
rows = OrderedDict()
rows["jobname"] = jobname.replace(" ", "")
rows["money"] = money
rows["company_name"] = company_name.replace("\n", "")
rows["p_bot"] = p_bot.strip().replace(" ", ""). \
replace("\n", ",").replace("/", ",")
rows["industry"] = industry.strip().\
replace("\t", "").replace("\n", "")
rows["job_bt"] = job_bt
savedata.append(rows)
# 保存到本地
df = pd.DataFrame(savedata)
df.to_csv("./datasets/lagou/{}.csv".format(name), index=None)
以上就是如何进行基于bs4的拉勾网AI相关工作爬虫实现,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
工作
信息
职位
爬虫
公司
名称
就是
数据
篇文章
行业
处理
学习
代码
方法
更多
月薪
机器
知识
合法
熟练
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
海南crm软件开发外包
招行软件开发子公司
Pex数据库怎么删
国家网络安全征文800字
江苏扬州网络安全宣传进广场
dnf登录后黑屏一直连接服务器
天融信网络安全产品怎么样
网络安全宏观面试题
诊所软件开发商
安徽舒伴互联网科技有限公司官网
防火墙是属于网络安全设备吗
成都晨月网络技术怎么样
湖南交通网络安全平台
数据库与plc对接
常用的软件开发模型包括
软件开发人员经常跳槽
预付软件开发费进入科目
强化网络安全管理推进落实情况
经济研究中常用付费数据库
上海交易软件开发哪家好
寒假护苗网络安全课观后感
steam 服务器 IP
网络安全防线牢不可破
计算机网络安全技术及防2搞
快吧游戏数据库损坏正在修复
网络技术专业需要配备的品质
逆变电源设计软件开发
软件开发毕设怎么抄
软件开发管理能力陷阱
大连工业大学数据库导航总表