成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

python使用bs4爬取boss直聘靜態頁面

瀏覽:2日期:2022-07-08 16:47:30

思路:

1、將需要查詢城市列表,通過城市接口轉換成相應的code碼

2、遍歷城市、職位生成url

3、通過url獲取列表頁面信息,遍歷列表頁面信息

4、再根據列表頁面信息的job_link獲取詳情頁面信息,將需要的信息以字典data的形式存在列表datas里

5、判斷列表頁面是否有下一頁,重復步驟3、4;同時將列表datas一直傳遞下去

6、一個城市、職位url爬取完后,將列表datas接在列表datas_list后面,重復3、4、5

7、最后將列表datas_list的數據,遍歷寫在Excel里面

知識點:

1、將response內容以json形式輸出,解析json并取值

2、soup 的select()和find_all()和find()方法使用

3、異常Exception的使用

4、wldt創建編輯Excel的使用

import requests, time, xlwtfrom bs4 import BeautifulSoupclass MyJob(): def __init__(self, mycity, myquery): self.city = mycity self.query = myquery self.list_url = 'https://www.zhipin.com/job_detail/?query=%s&city=%s&industry=&position='%(self.query, self.city) self.datas = [] self.header = { ’authority’: ’www.zhipin.com’, ’method’: ’GET’, ’scheme’: ’https’, ’accept’: ’text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8’, ’accept-encoding’: ’gzip, deflate, br’, ’accept-language’: ’zh-CN,zh;q=0.9’, ’cache-control’: ’max-age=0’, ’cookie’: ’lastCity=101210100;uab_collina=154408714637849548916323;toUrl=/;c=1558272251;g=-;l=l=%2Fwww.zhipin.com%2Fuser%2Flogin.html&r=; Hm_lvt_194df3105ad7148dcf2b98a91b5e727a=1555852331,1556985726,1558169427,1558272251; __a=40505844.1544087205.1558169426.1558272251.41.14.4.31; Hm_lpvt_194df3105ad7148dcf2b98a91b5e727a=1558272385’, ’referer’: ’https://www.zhipin.com/?ka=header-logo’, ’upgrade-insecure-requests’: ’1’, ’user-agent’: ’Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36’ } #將城市轉化為code碼 def get_city(self,city_list): city_url = 'https://www.zhipin.com/wapi/zpCommon/data/city.json' #獲取城市 json = requests.get(city_url).json() zpData = json['zpData']['cityList'] list = [] for city in city_list : for data_sf in zpData:for data_dq in data_sf['subLevelModelList']: if city == data_dq['name']: list.append(data_dq['code']) return list #獲取所有頁內容 def get_job_list(self, url, datas): print(url) html = requests.get(url, headers=self.header).text soup = BeautifulSoup(html, ’html.parser’) jobs = soup.select('.job-primary') for job in jobs: data = {} # 招聘id data['job_id'] = job.find_all('div', attrs={'class': 'info-primary'})[0].find('a').get('data-jobid') # 招聘鏈接 data['job_link'] = 'https://www.zhipin.com' + job.find_all('div', attrs={'class': 'info-primary'})[0].find('a').get('href') # 招聘崗位 data['job_name'] = job.find_all('div', attrs={'class': 'info-primary'})[0].find('div', attrs={'class': 'job-title'}).get_text() # 薪資 data['job_red'] = job.find_all('div', attrs={'class': 'info-primary'})[0].find('span', attrs={'class': 'red'}).get_text() # 地址 #工作年限 #學歷 data['job_address'] = job.find_all('div', attrs={'class': 'info-primary'})[0].find('p').get_text().split(' ') # 企業鏈接 data['job_company_link'] = job.find_all('div', attrs={'class': 'info-company'})[0].find('a').get('href') # 企業信息 data['job_company'] = job.find_all('div', attrs={'class': 'info-company'})[0].find('p').get_text().split(' ') # boss鏈接 data['job_publis_link'] = job.find_all('div', attrs={'class': 'info-publis'})[0].find('img').get('src') # boos信息 data['job_publis'] = job.find_all('div', attrs={'class': 'info-publis'})[0].find('h3').get_text().split(' ') time.sleep(5) self.get_job_detail(data) # 獲取job詳情頁內容 print(data) datas.append(data) # 將某條job添加到datas中,直到將當前頁添加完 try: next_url = soup.find('div', attrs={'class': 'page'}).find('a', attrs={'class': 'next'}).get('href') #if next_url[-1] =='3': # 第二頁自動拋異常 if next_url in 'javascript:;': # 最后一頁自動拋異常raise Exception() except Exception as e: print('最后一頁了;%s' % e) return datas # 返回所有頁內容 else: time.sleep(5) next_url = 'https://www.zhipin.com' + next_url self.get_job_list(next_url, datas) return datas # 返回所有頁內容 #獲取詳情頁內容 def get_job_detail(self, data): print(data['job_link']) html = requests.get(data['job_link'], headers=self.header).text soup = BeautifulSoup(html, ’html.parser’) # 招聘公司 data['detail_content_name'] = soup.find_all('div', attrs={'class': 'detail-content'})[0].find('div', attrs={'class': 'name'}).get_text() # 福利 data['detail_primary_tags'] = soup.find_all('div', attrs={'class': 'info-primary'})[0].find('div', attrs={'class': 'job-tags'}).get_text().strip() # 招聘崗位 data['detail_primary_name'] = soup.find_all('div', attrs={'class': 'info-primary'})[0].find('h1').get_text() # 招聘狀態 data['detail_primary_status'] = soup.find_all('div', attrs={'class': 'info-primary'})[0].find('div', attrs={'class': 'job-status'}).get_text() # 薪資 data['detail_primary_salary'] = soup.find_all('div', attrs={'class': 'info-primary'})[0].find('span', attrs={'class': 'salary'}).get_text() # 地址 #工作年限 #學歷 data['detail_primary_address'] = soup.find_all('div', attrs={'class': 'info-primary'})[0].find('p').get_text() # 工作地址 data['detail_content_address'] = soup.find_all('div', attrs={'class': 'detail-content'})[0].find('div', attrs={'class': 'location-address'}).get_text() # 職位描述 data['detail_content_text'] = soup.find_all('div', attrs={'class': 'detail-content'})[0].find('div', attrs={'class': 'text'}).get_text().strip().replace(';', 'n') # boss名字 data['detail_op_name'] = soup.find_all('div', attrs={'class': 'detail-op'})[1].find('h2', attrs={'class': 'name'}).get_text() # boss職位 data['detail_op_job'] = soup.find_all('div', attrs={'class': 'detail-op'})[1].find('p', attrs={'class': 'gray'}).get_text().split('·')[0] # boss狀態 data['detail_op_status'] = soup.find_all('div', attrs={'class': 'detail-op'})[1].find('p', attrs={'class': 'gray'}).get_text().split('·')[1] #將獲取的數據寫入Excel def setExcel(self, datas_list): book = xlwt.Workbook(encoding=’utf-8’) table = book.add_sheet('boss軟件測試') table.write(0, 0, '編號') table.write(0, 1, '招聘鏈接') table.write(0, 2, '招聘崗位') table.write(0, 3, '薪資') table.write(0, 4, '地址') table.write(0, 5, '企業鏈接') table.write(0, 6, '企業信息') table.write(0, 7, 'boss鏈接') table.write(0, 8, 'boss信息') table.write(0, 9, 'detail詳情') i = 1 for data in datas_list: table.write(i, 0, data['job_id']) table.write(i, 1, data['job_link']) table.write(i, 2, data['job_name']) table.write(i, 3, data['job_red']) table.write(i, 4, data['job_address']) table.write(i, 5, data['job_company_link']) table.write(i, 6, data['job_company']) table.write(i, 7, data['job_publis_link']) table.write(i, 8, data['job_publis']) table.write(i, 10, data['detail_content_name']) table.write(i, 11, data['detail_primary_name']) table.write(i, 12, data['detail_primary_status']) table.write(i, 13, data['detail_primary_salary']) table.write(i, 14, data['detail_primary_address']) table.write(i, 15, data['detail_content_text']) table.write(i, 16, data['detail_op_name']) table.write(i, 17, data['detail_op_job']) table.write(i, 18, data['detail_op_status']) table.write(i, 19, data['detail_primary_tags']) table.write(i, 20, data['detail_content_address']) i += 1 book.save(r’C:%s_boss軟件測試.xls’ % time.strftime(’%Y%m%d%H%M%S’)) print('Excel保存成功')if __name__ == ’__main__’: city_list = MyJob('','').get_city(['杭州']) query_list = ['軟件測試', '測試工程師'] datas_list = [] for city in city_list: for query in query_list: myjob = MyJob(city, query) datas = myjob.get_job_list(myjob.list_url, myjob.datas) datas_list.extend(datas) myjob.setExcel(datas_list)

以上就是python使用bs4爬取boss直聘靜態頁面的詳細內容,更多關于python 爬取boss直聘的資料請關注好吧啦網其它相關文章!

標簽: boss直聘 Python
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
性感美女极品91精品| 成人福利电影精品一区二区在线观看| 国产一区二区主播在线| 日本久久电影网| 亚洲成人综合视频| 一本久道久久综合婷婷鲸鱼| 国产拍揄自揄精品视频麻豆| 成人激情小说网站| 日韩欧美区一区二| 国产乱码精品一区二区三区忘忧草 | 久久久无码精品亚洲日韩按摩| 狠狠色丁香婷婷综合久久片| 欧洲一区二区三区免费视频| 免费三级欧美电影| 欧美午夜精品一区二区三区 | 91丨porny丨最新| 久久久久久久久岛国免费| 国产成人精品一区二区三区网站观看| 欧美日韩一级视频| 久久成人久久爱| 91黄色在线观看| 天天影视网天天综合色在线播放| 国产伦精品一区二区三区视频黑人 | 欧美高清视频在线高清观看mv色露露十八| 免费成人深夜小野草| 在线一区二区三区做爰视频网站| 日韩中文字幕91| 欧美三级韩国三级日本一级| 国精品**一区二区三区在线蜜桃| 678五月天丁香亚洲综合网| 九色综合狠狠综合久久| 欧美亚洲高清一区| 国产精品自拍毛片| 精品少妇一区二区| 欧美~级网站不卡| 日韩一区欧美一区| 亚洲精品女人| 亚洲高清免费观看| 久久精品国产99精品国产亚洲性色| 五月激情综合色| 欧美三日本三级三级在线播放| 国产一区二区三区久久悠悠色av| 日韩视频免费观看高清完整版 | 亚洲午夜成aⅴ人片| 性欧美暴力猛交另类hd| 亚洲成人动漫av| 欧美视频一区二区三区| 国产精品资源网站| 2023国产一二三区日本精品2022| 欧美私人啪啪vps| 中文字幕亚洲一区二区va在线| 最新日韩在线| 日韩精品亚洲一区二区三区免费| 欧美视频一区在线| 成人综合婷婷国产精品久久免费| 久久久久久久久久久久电影| 亚洲伦理一区| 奇米影视一区二区三区小说| 日韩一卡二卡三卡四卡| 欧美在线播放一区| 亚洲另类春色校园小说| 日本高清免费不卡视频| 激情综合亚洲精品| www日韩大片| 在线播放一区| 青青草精品视频| 日韩丝袜情趣美女图片| 国内激情久久| 同产精品九九九| 亚洲免费在线| 国产精品1区二区.| 中文字幕欧美日韩一区| 蘑菇福利视频一区播放| 国产一区二区不卡在线| 久久夜色精品国产噜噜av| 亚洲激情一区| 麻豆专区一区二区三区四区五区| 日韩欧美国产一区二区三区| 欧美日韩免费精品| 无码av免费一区二区三区试看 | 国产一级一区二区| 精品一区精品二区高清| 久久亚区不卡日本| 亚洲一区网站| youjizz国产精品| 亚洲国产精品久久久男人的天堂| 日韩一区二区影院| 亚洲激情欧美| 国产精品一级片在线观看| 国产精品久久久久久亚洲毛片 | 日本va欧美va瓶| 久久婷婷一区二区三区| 亚洲欧美日本视频在线观看| 国产成人av电影在线| 亚洲色欲色欲www在线观看| 欧美午夜影院一区| 色综合天天在线| 三级欧美韩日大片在线看| 精品处破学生在线二十三| 国产精品永久| 成+人+亚洲+综合天堂| 亚洲sss视频在线视频| 精品sm捆绑视频| 老司机精品久久| 欧美全黄视频| 国精产品一区一区三区mba桃花| 成人欧美一区二区三区| 91精品国产麻豆| 亚洲一区二区免费看| 91丝袜美女网| 狠狠色丁香久久婷婷综| 亚洲少妇中出一区| 欧美变态口味重另类| 可以看av的网站久久看| 牛牛国产精品| 国产精品一区在线观看你懂的| 亚洲一区二区三区在线看| 久久久久久久久蜜桃| 欧美日韩日日夜夜| 一本一本久久| av中文字幕不卡| 日本欧美久久久久免费播放网| 国产精品久久久久久久第一福利 | 在线视频精品| 91视频免费看| 黄色日韩三级电影| 图片区小说区区亚洲影院| 中文字幕欧美一| 精品国产乱子伦一区| 欧美午夜精品久久久久久超碰| 国产欧美日韩亚洲| 女生裸体视频一区二区三区| 国产精品综合二区| 日日夜夜精品免费视频| 国产精品福利影院| 日韩欧美国产麻豆| 久久亚洲图片| 一区二区三区你懂的| 欧美精品免费观看二区| 成人激情开心网| 狠狠色综合日日| 亚洲成av人片一区二区三区| 综合激情成人伊人| 国产亚洲欧美激情| 欧美一区二区三区不卡| 欧洲精品视频在线观看| 亚洲一区欧美二区| 亚洲人人精品| 欧美一区二区三区另类| 成人午夜精品在线| 精品一区二区三区视频| 偷偷要91色婷婷| 亚洲欧美一区二区三区国产精品 | 成人动漫一区二区在线| 蜜桃视频第一区免费观看| 亚洲精品综合在线| 国产精品免费人成网站| 久久一区二区三区国产精品| 日韩精品影音先锋| 91精品国产高清一区二区三区蜜臀 | 日韩一区二区在线播放| 欧美系列日韩一区| 91久久奴性调教| 亚洲女人av| 在线亚洲一区| 99国产精品视频免费观看一公开 | 欧美一区二区三区不卡| 91麻豆精品国产91久久久久| 精品视频免费看| 在线免费不卡视频| 色妞www精品视频| 久久久久久久高潮| 久久av一区二区| 久久精品国产99精品国产亚洲性色| 亚洲一区观看| 久久成人一区| 六月丁香综合| 色94色欧美sute亚洲线路一久| 美女日韩在线中文字幕| 国产精品毛片| 久久久久久自在自线| 久久久久久国产精品mv| 久久综合九色综合久99| 久久字幕精品一区| 色激情天天射综合网| 色美美综合视频| 欧美亚洲禁片免费| 欧美精品v国产精品v日韩精品| 欧美一区二区三区在线| 日韩欧美高清一区| 久久精品日产第一区二区三区高清版 | 国产精品网站在线| 国产精品欧美精品| 亚洲丝袜另类动漫二区| 国产精品国产三级国产有无不卡 | 国产一区二区三区美女| 成人一级黄色片| 99精品国产视频| 国语自产精品视频在线看8查询8| 亚洲黄色天堂|