day19-selenium获取网络数据

Day19-selenium获取网络数据

  • Day19-selenium获取网络数据
    • 1.selenium用法
      • a.导入浏览器
      • b.创建浏览器对象
      • c.打开网页
      • d.获取网页源代码
    • 2.selenium基本操作
      • a.获取输入框
      • b.输入内容
      • c.点击内容
      • d.前进与后退
      • e.切换选项卡
      • f.添加浏览器配置
      • g.完成滚动操作
    • 3.requests做自动登录
    • 4.selenium做自动登录

1.selenium用法

a.导入浏览器

from selenium.webdriver import Chrome

b.创建浏览器对象

b = Chrome()

c.打开网页

b.get('https://movie.douban.com/top250')

d.获取网页源代码

html1 = b.page_resource

2.selenium基本操作

a.获取输入框

# 浏览器对象.find_element(By.获取方式, 值)        -       按照指定方式获取第一个满足条件的标签,返回一个***标签对象***
# 浏览器对象.find_elements(By.获取方式, 值)       -       按照指定方式获取所有满足条件的标签,返回一个***列表***,列表中的元素是标签对象
"""
selenium中常见的获取方式
By.ID               -    通过id属性值获取标签
By.CLASS_NAME       -   通过class属性值获取标签
By.CSS_SELECTOR     -   通过css选择器获取标签
By.XPATH            -  通过Xpath路径值获取标签
By.LINK_TEXT        -   通过超链接的标签内容获取标签
"""

b.输入内容

语法:

标签对象.send_keys(内容)

#注意:如果要在输入中按执行按特殊键的效果,需要Keys类来提供
# from selenium.webdriver.common.keys import Keys
# search1.send_keys('你好helloworld')
# time.sleep(1)
# search1.send_keys(Keys.BACKSPACE)      # 按删除键

c.点击内容

标签对象.click()

d.前进与后退

后退:
浏览器对象.back()
前进:
浏览器对象.forward()

e.切换选项卡

b.switch_to.window(b.window_handles[1])  # 让浏览器指向第二个窗口

f.添加浏览器配置

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)

g.完成滚动操作

# js让网页滚动的方法:window.scrollBy(x方向偏移量, y方向偏移量)  
for _ in range(10):  
    b.execute_script('window.scrollBy(0, 800)')  
    time.sleep(1)

3.requests做自动登录

a.人工登录网页
b.获取登录后的网页的cookie
c.向headers中加入cookie对应的键值对

4.selenium做自动登录

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.重新打开网站

你可能感兴趣的:(selenium,chrome,python)