主页 > 网络编程 > 自己动手打造工具系列之自动刷新简历(2)

自己动手打造工具系列之自动刷新简历(2)

因为我们需要无GUI模式启动浏览器,所以Options必不可少,在其中加入‘headless’ 参数后便可以悄无声音地刷新简历,这样老板就不会看到我们在看其他机会啦。哈哈。在注释里已经说得相对明白了。其实主要在于如何去定位元素,然后操作元素。Selenium提供了8种定位元素的方法,大家有兴趣可以去官网看看。我们用得最多的还是.find_element_by_name、.find_element_by_tag_name 和 .find_element_by_class_selector。当然其他定位元素的方法只要能实现的都没问题,看自己喜好。

我们使用浏览器打开zhaopin.com, 按下F12打开开发者工具, 随后点击最左边的“选取一个元素按钮”,然后移动到用户名和密码输入框处便可以获取name,Class等信息。

最后使用.find_element_by_name 和 .find_element_by_tag来定位操作元素,因为该页面只有一个button标签,所以就使用tag name即可定位:
#定位元素,输入用户名和密码,然后进行提交操作 driver.find_element_by_name('loginname').send_keys(self.username) driver.find_element_by_name('Password').send_keys(self.password) driver.find_element_by_tag_name('button').submit()

其中sleep(3),主要是点击后页面可能还未加载。所以等待页面加载完后再进行其他操作。然后我们进入登陆后的页面去查找我们想要得到的自动刷新简历的功能。找到元素,右键“复制”->”CSS选择器”即可复制位置。

#定位元素,点击"刷新简历" driver.find_element_by_css_selector("a.zp-pfme-funcs-link:nth-child(2) > div:nth-child(3)").click() #获取页面变化部分,因为该位置会变化成"刷新成功" t = driver.find_element_by_css_selector("a.zp-pfme-funcs-link:nth-child(2) > p:nth-child(2)").text

而我们定义的t主要是来获取文字变化后状态,因为该网站简历刷新后文字会变成“刷新成功”。以此我们可以来判断是否刷新成功。最后关闭driver,一定得关闭,不然Firefox可能还在后台运行。

#判断简历是否刷新成功 t = driver.find_element_by_css_selector("a.zp-pfme-funcs-link:nth-child(2) > p:nth-child(2)").text if "刷新成功" in t:   print("智联招聘简历刷新成功! ") driver.close()

最后,liepin.com的操作方式大同小异,主要是在于有反爬策略。对新手来说太友好。所以我选择了m.liepin.com来操作。不知道发了这篇文章后会不会加强m.liepin.com的反爬策略。哈哈!所以跟做安全一样,此路不通的时候,可以另辟蹊径。思路决定出路!代码如下:

def liepin(self):     try: options = Options() options.add_argument('-headless') driver = Firefox(firefox_options=options) driver.get(self.lp_url) driver.find_element_by_name('user_login').send_keys(self.username) driver.find_element_by_css_selector('div.inputzone:nth-child(3) > input:nth-child(2)').send_keys(self.password) driver.find_element_by_css_selector('.btn').click() sleep(3) link = driver.find_element_by_css_selector('div.liepin-channel-list:nth-child(8) > div:nth-child(4) > a:nth-child(1)').get_attribute('href') driver.get(link) driver.find_element_by_css_selector('a.btn:nth-child(2)').click()         if driver.get_screenshot_as_file("success.png"):             print('猎聘网简历刷新成功! ') driver.close()     except Exception as e:         print("出现异常,程序将退出! ")         print("具体错误如下: ", e) sys.exit(1) 0×04 总结
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!