问题描述: 想获取腾讯求职信息,但是它现在是用 VUE.JS 渲染的,之前用的 urllib.request 暂时失去了作用,用起了 Selenium + webdriver, Chrome, 上代码, 这是刚刚反复测试的雏形:
import time
from selenium import webdriver
from selenium .webdriver.common.by import Bydriver = webdriver.Chrome(executable_path="D:\Python_module\chromdriver\chromedriver.exe")
driver.maximize_window()
driver.get("https://careers.tencent.com/search.html?query=co_1&sc=1") # 中国区的工作
time.sleep(2)''' # 腾讯招聘里面 : 1: title ; 2: (IEG | 西雅图,美国 | 产品 | 2021年07月27日)的4条信息, 也可能有 5 条, IEG, 地点, 类型, 发布时间(有5条的情况下:第 3, 第 4 为信息) '''titles = driver.find_elements_by_class_name("recruit-title")
print(titles[1].text)# 模拟点击, 以获取里面的 工作职责, 和工作要求
title_one = driver.find_elements_by_class_name("recruit-title")[1].click()
time.sleep(2)
print(title_one)handle_list = driver.window_handles
current_handle = driver.current_window_handle
print("句柄有: ")
print(handle_list)
print("当前的句柄是: ")
print(current_handle)
driver.switch_to.window(handle_list[1])
print("切换后的句柄: ")
print(driver.current_window_handle)time.sleep(2)# 工作职责 (duty work-module) 下的 duty-text 里面的文字
# job_content = driver.find_element(By.CSS_SELECTOR, "div .duty work-module")
job_content = driver.find_elements_by_class_name("work-module")
print(job_content[0].find_element(By.CSS_SELECTOR, "div .duty-text").text) # 工作模块里面获取其内容
print("---------------")
print(job_content[1].find_element(By.CSS_SELECTOR, "div .duty-text").text) # 工作要求里面的内容# 到这里已经打开了 2 个窗口, 把它们都关了, 连续 2 个 driver.close() 是不行的,它窗口没有切换过来
time.sleep(1)
driver.close()
print("窗口2,内容窗口已经关闭")
time.sleep(1)
driver.switch_to.window(handle_list[0])
driver.close()
print("窗口1, 列表窗口已经关闭")
运行结果: