[ python] 爬虫笔记(十) selenium动作

  • 便捷地获取网站中的动态加载数据
  • 便捷实现模拟登录

selenium

  • 基于浏览器自动化的一个模块
  • pip install selenium
  • 下载一个谷歌浏览器的驱动程序:http://npm.taobao.org/mirrors/chromedriver/87.0.4280.88/
    http://chromedriver.storage.googleapis.com/index.html (要翻墙)
  • 谷歌浏览器查看方法:打开谷歌浏览器,在地址栏输入chrome://version/
  • 通过selenium实例化一个浏览器对象:
from selenium import webdriver
#实例化一个浏览器对象(传入浏览器的驱动程序)
bro = webdriver.Chrome(executable_path='./chromedriver.exe')
url = "https://www.bilibili.com/video/BV1ha4y1H7sx?p=50"
#让浏览器发起指定url对应的请求
def play(bro,url):
    bro.get(url=url)

#获取浏览器当前源码数据
play(bro,url)

淘宝自动搜索:

from selenium import webdriver
from time import sleep
bro = webdriver.Chrome(executable_path='./chromedriver.exe')

bro.get('https://www.taobao.com/')

#标签定位
search_input = bro.find_element_by_id('q')
#标签交互
search_input.send_keys('Iphone')

#点击搜索按钮
button = bro.find_element_by_class_name('btn-search')
button.click()#点击搜索按钮

sleep(5)
bro.quit()

1.发起请求 get(url)
2.标签定位:find系列的方法
3.标签交互:send_keys(str)
4.执行js程序:excute_script(‘jscode’)
5.前进后退:back forward
6.关闭浏览器:quit

如果定位的标签是位于iframe标签之中的则必须通过如下操作在进行标签定位:

bro.switch_to.frame('iframeResult')#切换浏览器标签的作用域

动作链:

from selenium.webdriver import ActionChains

action = ActionChains(bro)
action.click_and_hold(div)#长按
偏移
action.move_by_offset(17,0).perform()#perform立即执行动作链动作
action.release()#释放动作链

猜你喜欢

转载自blog.csdn.net/Sgmple/article/details/112187561