结果如下:
实现过程如下:
driver = webdriver.Edge() # 定义浏览器驱动
driver.maximize_window() # 最大化浏览器窗口
url = "https://www.lagou.com"
定义一个搜索的方法:
# 通过关键字搜索
def search(keywords):
driver.get(url) # 打开页面
time.sleep(3) # 网络情况如果不理想,建议等待几秒(等待3秒)
driver.find_element(by=By.ID, value="cboxClose").click() # 通过Id定位到元素并点击(关闭弹窗)
time.sleep(2)
driver.find_element(by=By.ID, value="search_input").send_keys(keywords) # 在搜索框输入关键字
driver.find_element(by=By.ID, value="search_button").click() # 单击搜索按钮
time.sleep(2)
page_source = driver.page_source # 获取页面html
driver.close() # 关闭浏览器
return page_source
定义一个提取信息的方法
# 通过html提取我们需要的内容
def get_jobs(page_source):
soup = BeautifulSoup(page_source, "lxml") # 通过BeautifulSoup解析页面
items = soup.select(".item__10RTO") # 通过元素的class获取所有的招聘条目
for item in items: # 遍历所有的招聘条目
d = {
"job": item.select_one(".p-top__1F7CL>a").get_text(),
"company": item.select_one(".company-name__2-SjF>a").get_text(),
"salary": item.select_one(".money__3Lkgq").get_text()
}
print(d)
调用方法:
if __name__=="__main__":
page_source=search("python")
get_jobs(page_source)