from selenium.webdriver import Chrome
b = Chrome()
b.get('https://movie.douban.com/top250')
html1 = b.page_resource
# 浏览器对象.find_element(By.获取方式, 值) - 按照指定方式获取第一个满足条件的标签,返回一个***标签对象***
# 浏览器对象.find_elements(By.获取方式, 值) - 按照指定方式获取所有满足条件的标签,返回一个***列表***,列表中的元素是标签对象
"""
selenium中常见的获取方式
By.ID - 通过id属性值获取标签
By.CLASS_NAME - 通过class属性值获取标签
By.CSS_SELECTOR - 通过css选择器获取标签
By.XPATH - 通过Xpath路径值获取标签
By.LINK_TEXT - 通过超链接的标签内容获取标签
"""
语法:
标签对象.send_keys(内容)
#注意:如果要在输入中按执行按特殊键的效果,需要Keys类来提供
# from selenium.webdriver.common.keys import Keys
# search1.send_keys('你好helloworld')
# time.sleep(1)
# search1.send_keys(Keys.BACKSPACE) # 按删除键
标签对象.click()
后退:
浏览器对象.back()
前进:
浏览器对象.forward()
b.switch_to.window(b.window_handles[1]) # 让浏览器指向第二个窗口
1.创建配置对象
options = ChromeOptions()
2.添加配置
# a.取消图片加载,提高速度
options.add_argument('blink-settings=imagesEnabled=false')
# b.取消测试环境
options.add_experimental_option('excludeSwitches', ['enable-automation'])
3.给浏览器对象添加配置
b = Chrome(options=options)
# js让网页滚动的方法:window.scrollBy(x方向偏移量, y方向偏移量)
for _ in range(10):
b.execute_script('window.scrollBy(0, 800)')
time.sleep(1)
a.人工登录网页
b.获取登录后的网页的cookie
c.向headers中加入cookie对应的键值对
a.创建浏览器来打开需要登录的网站
b.留足够长的时间来进行登录
(可以用input)
完成登录后一定要确认浏览器对象指定的网页有登录成功的信息
c.获取登录后的cookie
cookies = b.get_cookies()
d.保存cookie到本地文件中
import json
with open('files/taobao.json', 'w', encoding='utf-8') as f:
f.write(json.dumps(cookies))
e.添加cookie
import json
with open('files/taobao.json', 'w', encoding='utf-8') as f:
f.write(json.dumps(cookies))
f.重新打开网站