1. # douban.py
  2.  
  3. from selenium import webdriver
  4. from selenium.webdriver.common.keys import Keys
  5. import time
  6.  
  7. driver = webdriver.PhantomJS()
  8. driver.get("http://www.douban.com")
  9.  
  10. # 输入账号密码
  11. driver.find_element_by_name("form_email").send_keys("xxxxx@xxxx.com")
  12. driver.find_element_by_name("form_password").send_keys("xxxxxxxx")
  13.  
  14. # 模拟点击登录
  15. driver.find_element_by_xpath("//input[@class=\'bn-submit\']").click()
  16.  
  17. # 等待3秒
  18. time.sleep(3)
  19.  
  20. # 生成登陆后快照
  21. driver.save_screenshot("douban.png")
  22.  
  23. with open("douban.html", "w") as file:
  24. file.write(driver.page_source)
  25.  
  26. driver.quit()
  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3.  
  4. # python的测试模块
  5. import unittest
  6. from selenium import webdriver
  7. from bs4 import BeautifulSoup
  8.  
  9.  
  10. class douyuSelenium(unittest.TestCase):
  11. # 初始化方法
  12. def setUp(self):
  13. self.driver = webdriver.PhantomJS()
  14.  
  15. #具体的测试用例方法,一定要以test开头
  16. def testDouyu(self):
  17. self.driver.get(\'http://www.douyu.com/directory/all\')
  18. while True:
  19. # 指定xml解析
  20. soup = BeautifulSoup(driver.page_source, \'xml\')
  21. # 返回当前页面所有房间标题列表 和 观众人数列表
  22. titles = soup.find_all(\'h3\', {\'class\': \'ellipsis\'})
  23. nums = soup.find_all(\'span\', {\'class\': \'dy-num fr\'})
  24.  
  25. # 使用zip()函数来可以把列表合并,并创建一个元组对的列表[(1,2), (3,4)]
  26. for title, num in zip(nums, titles):
  27. print u"观众人数:" + num.get_text().strip(), u"\t房间标题: " + title.get_text().strip()
  28. # page_source.find()未找到内容则返回-1
  29. if driver.page_source.find(\'shark-pager-disable-next\') != -1:
  30. break
  31. # 模拟下一页点击
  32. self.driver.find_element_by_class_name(\'shark-pager-next\').click()
  33.  
  34. # 退出时的清理方法
  35. def tearDown(self):
  36. print \'加载完成...\'
  37. self.driver.quit()
  38.  
  39. if __name__ == "__main__":
  40. unittest.main()

1.隐藏百度图片

  1. from selenium import webdriver
  2.  
  3. driver = webdriver.PhantomJS()
  4. driver.get("https://www.baidu.com/")
  5.  
  6. # 给搜索输入框标红的javascript脚本
  7. js = "var q=document.getElementById(\"kw\");q.style.border=\"2px solid red\";"
  8.  
  9. # 调用给搜索输入框标红js脚本
  10. driver.execute_script(js)
  11.  
  12. #查看页面快照
  13. driver.save_screenshot("redbaidu.png")
  14.  
  15. #js隐藏元素,将获取的图片元素隐藏
  16. img = driver.find_element_by_xpath("//*[@id=\'lg\']/img")
  17. driver.execute_script(\'$(arguments[0]).fadeOut()\',img)
  18.  
  19. # 向下滚动到页面底部
  20. driver.execute_script("$(\'.scroll_top\').click(function(){$(\'html,body\').animate({scrollTop: \'0px\'}, 800);});")
  21.  
  22. #查看页面快照
  23. driver.save_screenshot("nullbaidu.png")
  24.  
  25. driver.quit()

2.模拟滚动条滚动到底部

  1. from selenium import webdriver
  2. import time
  3.  
  4. driver = webdriver.PhantomJS()
  5. driver.get("https://movie.douban.com/typerank?type_name=剧情&type=11&interval_id=100:90&action=")
  6.  
  7. # 向下滚动10000像素
  8. js = "document.body.scrollTop=10000"
  9. #js="var q=document.documentElement.scrollTop=10000"
  10. time.sleep(3)
  11.  
  12. #查看页面快照
  13. driver.save_screenshot("douban.png")
  14.  
  15. # 执行JS语句
  16. driver.execute_script(js)
  17. time.sleep(10)
  18.  
  19. #查看页面快照
  20. driver.save_screenshot("newdouban.png")
  21.  
  22. driver.quit()

  

版权声明:本文为loser1949原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/loser1949/p/9461854.html