爬取每个职位的各种要求
准备工作
工具:pycharm
环境:python
分析:
Selenium :用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中
Selenium.webdriver:调用Selenium WebDriver的库 和 各个浏览器的驱动进程 进行交互,传递Selenium命令 给它们,并且获取命令执行的结果,返回给我们的代码进行处理。
代码
from selenium.webdriver import Chrome #导入浏览器的包
from selenium.webdriver.common.keys import Keys#模拟键盘操作
import time
#创建浏览器
web = Chrome()
#打开浏览器 , 请求到拉钩
web.get('https://www.lagou.com')
#因为打开网页后会自动弹出一个小的广告页,我们要做的就是找到小叉子,然后点击小叉子,关掉广告。2.小叉子定位方法
#摁住f12或Fn+f12,然后就会看到源码,然后用小箭头点击你想要找的位置,然后点击,就能确定代码所在的位置。然后在代码位置右键-->copy-->copy XPath,然后就可以写入代码了
#找到那个叉子 点击
web.find_element_by_xpath('//*[@id="cboxClose"]').click()
#来一个延迟
time.sleep(1)
#找到那个文本框,输入python,之后输入一个回车
web.find_element_by_xpath('//*[@id="search_input"]').send_keys('python',Keys.ENTER)
time.sleep(30)
web.find_element_by_xpath('//*[@id="search_input"]').send_keys('python',Keys.ENTER)
n =1
f = open(r'D:\0大三下\工坊\爬虫\lagou2.txt','w',encoding='utf-8')
alist = web.find_elements_by_class_name('position_link')
for a in alist:
#找到h3 并点击
a.find_element_by_tag_name('h3').click()
#窗口转换
web.switch_to.window(web.window_handles[-1])#跳转到倒数第一个窗口
#拿到招聘信息
jobname=web.find_element_by_xpath('/html/body/div[4]/div/div[1]/div/h1/span/span').text
slary=web.find_element_by_tag_name('h3').text
job=web.find_element_by_xpath('/html/body/div[4]/div/div[1]/dd/ul').text
job_desc = web.find_element_by_xpath('//*[@id="job_detail"]/dd[2]').text #拿文本
#把招聘信息保存在文件中
#如果是追加写:a
#如果是覆盖写:w
# f = open(r'D:\0大三下\工坊\爬虫\lagou1.txt', 'a', encoding='utf-8')
f.write(jobname)
f.write(slary)
f.write(job)
f.write(job_desc)
#f.flush()#保存
#保存并关闭窗口
web.close()
#调整窗口到最开始的那个页面
web.switch_to.window(web.window_handles[0]) # 跳转到最开始的那个页面
print("一家公司的招聘信息下载完毕")
time.sleep(1)
n += 1
f.close()#关闭并保存文件