爬虫:selenium+无窗口模式Chrome爬取拉勾网

1.我的目的

  • 拉勾网搜索任意关键词,将其搜索的职位详细信息(职位名、公司、薪资、职位要求、职位职责)保存进txt文件,格式如下爬虫:selenium+无窗口模式Chrome爬取拉勾网_第1张图片

2.实现过程

  • ① 初始化浏览器驱动
	chormedriver_path = r"D:\xxxxx\chrome_driver\chromedriver.exe"
  • ② 设为无界面模式(PhantomJS在当前python已被取代,因为各个浏览器都出了自己的无窗口模式)
	chrome_options = Options()
 	chrome_options.add_argument('--headless')
 	chrome_options.add_argument('--disable-gpu')
  • ③ 打开拉勾网官网

  • ④ 因为打开拉勾网可能会弹出选择城市的页面,这里需要进行判定选择爬虫:selenium+无窗口模式Chrome爬取拉勾网_第2张图片

  • ⑤ 找到输入框---->输入关键词----->点击搜索
    在这里插入图片描述

  • ⑥ 点击当前页每一个职位—>在职位具体信息页面获取我们需要的信息—>关闭这个页面----->页面返回职位列表页面(因为即使页面关闭了当前页url也不会自动更改)----->判断下一页是否可点击----->可点击则进入下一页---->(重复上述操作,直到下一页无法点击)

    • 关键一:浏览器回到上一页
    html_driver.switch_to.window(html_driver.window_handles[1])
    

    关键二:判断下一页是否存在

    next_page_disable = html_driver.find_elements_by_class_name('pager_next_disabled')
    next_page_enable = html_driver.find_elements_by_class_name('pager_next ')
    print(len(next_page_disable))
    print(len(next_page_enable))
    if len(next_page_disable) == 1:
        break  # 结束
    else:
        next_page_enable[0].click()  #点击下一页
    
  • ⑦ 很多时候因为网络或者电脑服务器原因导致获取某一个网页速度不达预期,为了避免这种问题导致程序异常,最好在执行了跳转等操作之后先进行判断新的元素是否成功加载,如果加载成功则往下执行。

3.代码

  • 地址: https://github.com/zkyws/spider

你可能感兴趣的:(实践)