import time
# 基本用法
# from selenium import webdriver
# driver = webdriver.Chrome()
# driver.get("http:\\www.baidu.com")
# driver.save_screenshot('./baidu.png')
# time.sleep(2)
# driver.quit()
# 无界面使用方法
# from selenium import webdriver
# from selenium.webdriver.chrome.options import Options
#
# chrome_options = Options()
# chrome_options.add_argument('--headless')
# driver = webdriver.Chrome(chrome_options=chrome_options)
# driver.get("http:\\www.baidu.com")
# driver.save_screenshot('./baidu.png')
# time.sleep(1)
# driver.quit()
# 跳转窗口用法
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 滚动到底部
# js="var q=document.documentElement.scrollTop=10000"
# driver.execute_script(js)
# 多次滚动到底部(建议用这个)
# js = "var q=window.scrollTo(0,document.body.scrollHeight)"
# driver.execute_script(js)
# chrome_options = Options()
# chrome_options.add_argument('--headless')
# driver = webdriver.Chrome(chrome_options=chrome_options)
# driver = webdriver.Chrome()
# 获取当前窗口句柄
# now_handle = driver.current_window_handle
# 获取所有窗口句柄
# all_handles = driver.window_handles
# 切换回原窗口
# driver.switch_to_window(now_handle)
# time.sleep(2)
# 设置代理
# from selenium import webdriver
# chromeOptions = webdriver.ChromeOptions()
# 一定要注意,=两边不能有空格,不能是这样--proxy-server = http://202.20.16.82:10152
# chromeOptions.add_argument("--proxy-server=http://202.20.16.82:10152")
# browser = webdriver.Chrome(chrome_options = chromeOptions)
# 设置请求头
# from selenium import webdriver
# options = webdriver.ChromeOptions()
# 设置中文
# options.add_argument('lang=zh_CN.UTF-8')
# 更换头部
# options.add_argument('user-agent="Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20"')
# browser = webdriver.Chrome(chrome_options=options)
# url = "https://httpbin.org/get?show_env=1"
# browser.get(url)
# browser.quit()
# 设置不加载图片
from selenium import webdriver
# options = webdriver.ChromeOptions()
# prefs = {
# 'profile.default_content_setting_values': {
# 'images': 2
# }
# }
# options.add_experimental_option('prefs', prefs)
# browser = webdriver.Chrome(chrome_options=options)
# browser = webdriver.Chrome()
# url = "http://image.baidu.com/"
# browser.get(url)
# input("是否有图")
# browser.quit()
# 获取多个文本内容,如下获得的是p标签的所有的文本,如果p标签内有其他的标签,文本的内容也被获取到
# driver.find_element_by_xpath('.//div[@class="content"]/div/p').text
'''
前面部分代码用于填写登录信息并登录
'''
登录并保存cookie
# 获取cookie并通过json模块将dict转化成str
dictCookies = self.browser.get_cookies()
jsonCookies = json.dumps(dictCookies)
# 登录完成后,将cookie保存到本地文件
with open('cookies.json', 'w') as f:
f.write(jsonCookies)
Selenium添加访问cookie实现自动登录
# 初次建立连接,随后方可修改cookie
self.browser.get('http://xxxx.com')
# 删除第一次建立连接时的cookie
self.browser.delete_all_cookies()
# 读取登录时存储到本地的cookie
with open('cookies.json', 'r', encoding='utf-8') as f:
listCookies = json.loads(f.read())
for cookie in listCookies:
self.browser.add_cookie({
'domain': '.xxxx.com', # 此处xxx.com前,需要带点
'name': cookie['name'],
'value': cookie['value'],
'path': '/',
'expires': None
})
# 再次访问页面,便可实现免登陆访问
self.browser.get('http://xxx.com')
selenium获取html源代码
# 执行js得到整个HTML
html = driver.execute_script("return document.documentElement.outerHTML")
获得整个文档的HTML
html = driver.find_element_by_xpath("//*").get_attribute("outerHTML")
# 不要用 driver.page_source,那样得到的页面源码不标准
获取单个元素具体的HTML源文件
element.get_attribute('innerHTML')
# 获取webelement的源html
elem = wd.find_element_by_css_selector('#my-id')
我知道我可以得到完整的页面来源。。
elem.source # <-- returns the HTML as a string
#selenium 使用css通过属性选择webelement:
在这里插入代码片