91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行基于bs4的拉勾網AI相關工作爬蟲實現

發布時間:2021-12-09 11:19:05 來源:億速云 閱讀:134 作者:柒染 欄目:大數據

本篇文章給大家分享的是有關如何進行基于bs4的拉勾網AI相關工作爬蟲實現,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

年初大家可能是各種跳槽吧,看著自己身邊的人也是一個個的要走了,其實是有一點傷感的。人各有志吧,不多評論。這篇文章主要是我如何抓取拉勾上面AI相關的職位數據,其實抓其他工作的數據原理也是一樣的,只要會了這個,其他的都可以抓下來。一共用了不到100行代碼,主要抓取的信息有“職位名稱”,“月薪”,“公司名稱”,“公司所屬行業”,“工作基本要求(經驗,學歷)”,“崗位描述”等。涉及的工作有“自然語言處理”,“機器學習”,“深度學習”,“人工智能”,“數據挖掘”,“算法工程師”,“機器視覺”,“語音識別”,“圖像處理”等幾大類。

下面隨便截個圖給大家看下,我們想要的信息

如何進行基于bs4的拉勾網AI相關工作爬蟲實現

如何進行基于bs4的拉勾網AI相關工作爬蟲實現

然后看下我們要的信息在哪里

如何進行基于bs4的拉勾網AI相關工作爬蟲實現

然后職位詳細信息是的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相關工作爬蟲實現,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

五大连池市| 东兴市| 梅州市| 兰西县| 阿拉善右旗| 都江堰市| 海口市| 新乡市| 尚志市| 偏关县| 临漳县| 南丹县| 延吉市| 兴城市| 广安市| 舒兰市| 平果县| 丹棱县| 富源县| 大港区| 清流县| 淮阳县| 夹江县| 谢通门县| 庄河市| 南和县| 正定县| 岱山县| 丹阳市| 梅河口市| 应用必备| 绥化市| 高清| 安岳县| 芜湖县| 中阳县| 阿瓦提县| 宝丰县| 精河县| 南雄市| 固原市|