专栏名称: 51Testing软件测试网
51Testing软件测试网,人气最旺的软件测试技术门户,提供软件测试社区交流,软件测试博客,人才服务,测试沙龙,测试杂志,测试资料下载等全方位信息服务,是国内最专业的软件测试就业培训、企业服务供应商...
目录
相关文章推荐
51好读  ›  专栏  ›  51Testing软件测试网

揭秘使用Selenium爬取拉钩数据分析职位招聘信息的全过程……

51Testing软件测试网  · 公众号  · 测试  · 2019-09-19 17:30

正文

请到「今天看啥」查看全文


import time

import pandas as pd


bronser = webdriver.Chrome()

bronser.get('https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90?px=default&city=%E5%85%A8%E5%9B%BD#order')

  • url解析

第一层是一个循环,用于翻页。
对于每一页,首先使用BeautifulSoup对html解析,使用soup.find()方法找到岗位列表,并使用bronser找到下一页按钮并构建对象。
然后对岗位列表中的每一条岗位的岗位信息进行提取,并存入job_info列表中,然后将每条岗位信息列表存入job列表中。每一页的数据爬取之后,判断下一步按钮是否可以执行,如果可以则使用button.click()点击下一步,并且未防止出现验证,停留10s后继续运行

job = []

while True:

soup = BeautifulSoup(bronser.page_source)

list_of_position = soup.find('div',class_='s_position_list').find('ul').find_all('li')

next_button = bronser.find_element_by_class_name('pager_next ')

for i in list_of_position:

company = i.get('data-company')

companyid = i.get('data-companyid')

hrid=i.get('data-hrid')

positionid=i.get('data-positionid')

positionname=i.get('data-positionname')

salary=i.get('data-salary')

tpladword=i.get('data-tpladword')

location = i.find('em').string

hr_position = i.find('input',class_='hr_position').get('value')

position_tag = i.find('div',class_='li_b_l').text.split('\n')[-2]

experience = position_tag.split('/')[0]

education = position_tag.split('/')[1]







请到「今天看啥」查看全文