阅读背景:

Python进阶之爬虫进阶selenium的使用

来源:互联网 
不在以文字赘述了,直接上代码,代码中都已经做了注解。。。其余内容稍后更新 # encoding=utf-8 __author__ = 'Jonny' __location__ = '西安' __date__ = '2018-05-14' from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import time def main_test1(): #调用一个谷歌浏览器驱动,创建一个浏览器 driver = webdriver.Chrome() #设置窗口在最大化 driver.maximize_window() #自定义窗口大小 # driver.set_window_size(width=200,height=300) #get方法可以传递网址参数,也可以传递本地文件路径 driver.get('https://www.baidu.com') #返回网页的主题:(例如:百度一下,你就知道) print(driver.title) print('---------------------------------------') input_element = driver.find_element_by_id('kw') #同作用替换; input_element = driver.find_element(By.ID,'kw') #输入查询的关键词,并提交查询的命令, input_element.send_keys('python') input_element.submit() #与楼上语句作用是相同的 driver.find_element_by_id('su').click() try: #个人理解:用于判断之前输入的要查询关键词,是否与查询到的网页相关 #c构造函数,接受一个WebDriver实例,并在几秒钟内超时。 # until:把驱动程序提供的方法称为参数,直到返回值不是假的。 # title_contains:期望检查标题包含一个区分大小写的子串。标题是标题期望返回的片段当标题匹配时,否则是假的 WebDriverWait(driver,100).until(EC.title_contains('python')) print(driver.title) finally: time.sleep(20) #退出,并关闭所有相关进程,注意和driver.close()的区别,这个是只关掉窗口,不关闭相关进程 driver.quit() '''' find_element_by_xx方法可以定位单一元素,如果要定位一组元素需要用find_elements_by_xxx方法,(注意该方法返回值是一个列表对象) 定位一组对象一般用于以下场景: 批量操作对象,比如说将页面上所有的checkbox都勾上 先获取一组对象,在在这组对象中过滤除需要的具体需要定位的一些对象,比如说在上一条中定位出的所有CheckBox中定位某一个CheckBox。 ''' browser = webdriver.Chrome() browser.maximize_window() browser.get('https://blog.csdn.net/m0_37338590') #通过标签属性查找 result = browser.find_element_by_class_name('description') # result = browser.find_element(By.CLASS_NAME,'description') print(result.text) print('-------------------------------------------') #通过ID属性寻找 result = browser.find_element_by_id("asideProfile") # result = browser.find_element(By.ID,"asideProfile") print(result.text) print('-------------------------------------------') #通过标签属性名差查找 result = browser.find_element_by_name("shenma-site-verification") # result = browser.find_element(By.NAME,"shenma-site-verification") print(result.text) print('-------------------------------------------') #通过元素内容 result = browser.find_element_by_link_text('路由器设置VPN,随时随地访问内部网络') # result = browser.find_element(By.LINK_TEXT,"python") print(result.text) print('-------------------------------------------') #通过元素部分内容 result = browser.find_element_by_partial_link_text('python') # result = browser.find_element(By.LINK_TEXT,"python") print(result.text) print('-------------------------------------------') #通过CSS选择器 result = browser.find_element_by_css_selector("#uid") print(result.text) print('-------------------------------------------') #还可以利用Xpath实现,具体实现方法在这里就不做赘述了 # if __name__ == '__main__': # main_test1() 不在以文字赘述了,直接上代码,代码中都已经做了注解。。。其余内容稍后更新 # encoding=u



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: