认识selenium
selenium是一个web的自动化测试工具,selenium测试直接运行在浏览器中,就像真正的用户在操作一样。selenium主要测试你的应用程序是否能够很好地在不同浏览器和操作系统上工作。它的优点如下:免费;小巧,对于不同的语言它只是一个包;支持C,Python,java,C#多种语言的测试脚本;支持多平台:windows,linux,Mac,支持多浏览器:ie,chrome,firefox,safari;支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器上执行。
用selenium玩转csdn
俗话说,实践是检验真理的唯一标准
为了能更好地为大家展示selenium的功能与特点,因此我将结合CSDN的爬取实战来为大家讲解
打开网页
1
2
3
4
5option = webdriver.ChromeOptions()
option.add_experimental_option("detach", True) # 防止自动关闭浏览器
browser = webdriver.Chrome(options=option)
browser.get('https://www.csdn.net/')模拟输入
1
2
3
4
5input = browser.find_element_by_id('toolbar-search-input')
input.send_keys(keys)
sleep(1) # 等待输入完毕
input.send_keys(Keys.ENTER) # 输入回车
browser.switch_to.window(browser.window_handles[1]) # 跳页模拟点击“用户”标签
1
2li = browser.find_element_by_xpath('//div[@class="s-nav-lt"]/ul/li[5]')
li.click()页面控制
browser.close()
:关闭当前窗口,若当前窗口为唯一窗口,则退出browser.quit()
:关闭所有窗口并退出
1
2
3
4# 实现关调页面0
browser.switch_to.window(browser.window_handles[0]) # 先跳转到页面0
browser.close() # 关闭当前页面
browser.switch_to.window(browser.window_handles[0]) # 相当于回到新打开的页面(原页面1)获取用户名与头像
1
2
3
4
5img = browser.find_element_by_xpath('//div[@class="item-hd"]/img').get_attribute('src')
href=browser.find_element_by_xpath('//div[@class="so-items-user"]/a').get_attribute('href')
print(img,href,end='\n')回顾
在之前的一系列操作中,我们模拟
- 打开了CSDN主页面
- 输入了搜索内容
- 点击了用户标签
- 获取到了该页面下的用户头像与用户名称
结语与robots协议
不知道大家在爬取之前,是否注意到CSDN遵循了robots协议(没有关注过的可以点击这个网址:https://www.csdn.net/robots.txt)
为了不给网站的管理员带来麻烦,希望大家在爬取的时候能尽量遵循robots协议;若在学习过程中在不可避免地无法遵循robots协议,也尽量维持爬虫爬取频率与人类正常访问频率相当,不过多占用服务器资源
另外也希望大家能够多多支持大可,有什么问题都可以提交,我也会及时为大家解决。最后也欢迎大家光临我的小站 https://cheungducknew.github.io/
本教程仅供学习,若被他人用于其他用途,与本人无关