day19-selenium获取网络数据

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值