selenium 使用技巧

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:

在这里插入代码片css选择器

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值