本文主要是介绍Python爬虫 senlenium爬取拉勾网招聘数据!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、基本思路
目标url:https://www.lagou.com/
用selenium爬虫实现,输入任意关键字,比如 python 数据分析,点击搜索,得到的有关岗位信息,爬取下来保存到Excel。
有30页,每个页面有15条招聘信息。
二、selenium爬虫
from selenium import webdriver import time import logging import random import openpyxlwb = openpyxl.Workbook() sheet = wb.active sheet.append(['job_name', 'company_name', 'city','industry', 'salary', 'experience_edu','welfare','job_label']) logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s: %(message)s')def search_product(key_word):browser.find_element_by_id('cboxClose').click() # 关闭让你选城市的窗口time.sleep(2)browser.find_element_by_id('search_input').send_keys(key_word) # 定位搜索框 输入关键字browser.find_element_by_class_name('search_button').click() # 点击搜索browser.maximize_window() # 最大化窗口time.sleep(2)browser.find_element_by_class_name('body-btn').click() # 关闭弹窗 啥领取红包窗口time.sleep(random.randint(1, 3))browser.execute_script("scroll(0,3000)") # 下拉滚动条get_data() # 调用抓取数据的函数# 模拟点击下一页 翻页爬取数据 每爬取一页数据 休眠 控制抓取速度 防止被反爬 让输验证码for i in range(29):browser.find_element_by_class_name('pager_next ').click()time.sleep(1)browser.execute_script("scroll(0,3000)")get_data()time.sleep(random.randint(3, 5))def get_data():items = browser.find_elements_by_xpath('//*[@id="s_position_list"]/ul/li')for item in items:job_name = item.find_element_by_xpath('.//div[@class="p_top"]/a/h3').textcompany_name = item.find_element_by_xpath('.//div[@class="company_name"]').textcity = item.find_element_by_xpath('.//div[@class="p_top"]/a/span[@class="add"]/em').textindustry = item.find_element_by_xpath('.//div[@class="industry"]').textsalary = item.find_element_by_xpath('.//span[@class="money"]').textexperience_edu = item.find_element_by_xpath('.//div[@class="p_bot"]/div[@class="li_b_l"]').textwelfare = item.find_element_by_xpath('.//div[@class="li_b_r"]').textjob_label = item.find_element_by_xpath('.//div[@class="list_item_bot"]/div[@class="li_b_l"]').textdata = f'{job_name},{company_name},{city},{industry},{salary},{experience_edu},{welfare},{job_label}'logging.info(data)sheet.append([job_name, company_name, city,industry, salary, experience_edu, welfare, job_label])def main():browser.get('https://www.lagou.com/')time.sleep(random.randint(1, 3))search_product(keyword)wb.save('job_info.xlsx')if __name__ == '__main__':keyword = 'Python 数据分析'# chromedriver.exe的路径chrome_driver = r'D:\python\pycharm2020\chromedriver.exe'options = webdriver.ChromeOptions()# 关闭左上方 Chrome 正受到自动测试软件的控制的提示options.add_experimental_option('useAutomationExtension', False)options.add_experimental_option("excludeSwitches", ['enable-automation'])browser = webdriver.Chrome(options=options, executable_path=chrome_driver)main()browser.quit()
爬虫运行,成功爬取数据并保存到Excel,运行结果如下:
三、查看数据
你学会了吗 需要代码记得加群哦:1136192749
这篇关于Python爬虫 senlenium爬取拉勾网招聘数据!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!