selenium
1比1模仿浏览器访问页面,是有界面的
import urllib.requestfrom selenium import webdriver#创建浏览器操作对象path = 'msedgedriver.exe'#创建浏览器browser = webdriver.Edge(path)#访问网站base_url = 'https://www.jd.com'#打开页面browser.get(base_url)#page_source获取网页源码content = browser.page_sourceprint(content)from selenium import webdriver#设置文件路径path = 'msedgedriver.exe'#设置模拟浏览器browser = webdriver.Edge(path)base_url = 'https://www.baidu.com'#访问网页browser.get(base_url)#元素定位#根据id找到对象 ★button = browser.find_element_by_id('su')print(button)#根据标签属性的属性值来获取对象的button = browser.find_element_by_name('wd')print(button)#根据xpath语句来获取对象 ★button = browser.find_element_by_xpath('//input[@id="su"]')print(button)#根据标签名字来获取对象button = browser.find_element_by_tag_name('input')print(button)#使用bs4的语法来实现的 ★button = browser.find_element_by_css_selector('#su')print(button)#根据a标签的名称获取对象button = browser.find_element_by_link_text('直播')print(button)from selenium import webdriver#设置文件路径path = 'msedgedriver.exe'browser = webdriver.Edge(path)#设置访问的网页base_url ='http://www.baidu.com'#开始访问网页browser.get(base_url)#获取元素一些变量input = browser.find_element_by_id('su')#获取元素属性print(input.get_attribute('class'))#获取元素文本a = browser.find_element_by_link_text('新闻')print(a.text)#获取元素tag标签print(input.tag_name)from selenium import webdriverimport time#创建浏览器对象path = 'msedgedriver.exe'#设置需要用到的浏览器类型browser = webdriver.Edge(path)#设置需要打开的urlbase_url = 'https://www.baidu.com'browser.get(base_url)#当打开浏览器时休息两秒time.sleep(2)#获取文本框的对象input = browser.find_element_by_id('kw')#在文本框输入周杰伦input.send_keys('周杰伦') #发送一个值为周杰伦time.sleep(2)#获取百度一下的按钮button = browser.find_element_by_id('su')#点击按钮button.click()time.sleep(2)#滑倒底部js_bottom = 'document.documentElement.scrollTop=100000'browser.execute_script(js_bottom)time.sleep(2)#获取下一页那妞next_page = browser.find_element_by_xpath('//a[@class="n"]')#点击下一页next_page.click()time.sleep(2)#回到上一页browser.back()time.sleep(2)#再次回去browser.forward()time.sleep(2)#退出browser.quit()
常用定位八大元素
# id id数值定位driver.find_element(By.ID, 'kw').send_keys("蕾姆")# name name数值定位driver.find_element(By.NAME, 'wd').send_keys("蕾姆")# link_text 超链接名称定位driver.find_element(By.LINK_NAME, '新闻').click()# partail_link_text 模糊超链接名称定位driver.find_element(By.PARTAIL_LINK_NAME, '新闻').click()# xpath 定位# 1 索引定位//from/span[1]/input# 2 属性定位//input[@autocomplete='off']# 3 通配符定位//*[@autocomplete='off']//*[*='off']# 4 部分属性值定位//*[start-with(@autocomplete,'of')] # 属性以of开头的元素//*[substring(@autocomplete,2)=='ff'] # 以xx结尾//*[contains(@autocomplete,'of')] # 包含of# 5 文本定位//span[text()='文本']
