爬虫---selenium的简介

selenium的简介

1.动态HTML技术了解

1.1爬虫和反爬虫的斗争

在这里插入图片描述

  • 爬虫建议
  • 尽量减少请求次数
    • 保存获取到的HTML,供查错和重复使用
  • 关注网站的所有类型的页面
    • Html5页面
    • APP
  • 多伪装
    • 代理IP
    • 随机请求头
  • 利用多线程分布式
    • 在不被发现的情况下我们尽可能的提高速度

1.2 ajax基本介绍

动态了解HTML技术

  • JS
    • 是网络上最常用的脚本语言,它可以收集用户的跟踪数据,不需要重载页面直接提交表单,在页面嵌入多媒体文件,甚至运行网页
  • jQuery
    • jQuery是一个快速、简介的JavaScript框架,封装了JavaScript常用的功能代码
  • ajax
    • ajax可以使用网页实现异步更新,可以在不重新加载整个网页的情况下,对网页的某部分进行更新
  • 获取ajax数据的方式
    • 1.直接分析ajax调用的接口。然后通过代码请求这个接口。
    • 2.使用Selenium+chromedriver模拟浏览器行为获取数据
方式缺点优点
分析接口直接可以请求到数据。不需要做一些解析工作。代码量少,性能高分析接口比较复杂,特别是一些通过js混淆的接口,要有一定的js功底。容易被发现是爬虫
selenium直接模拟浏览器的行为。浏览器能请求到的,使用selenium也能请求到。爬虫更稳定。代码量多。性能相对较低

2.selenium+chromedriver获取动态数据

2.1selenium 介绍

2.2selenium的使用

1.selenium的基本操作
# 导入selenium库
from selenium import webdriver
# 实例化浏览器(根据浏览器的不同webdriver.“  ”里的会有变化)
driver = webdriver.Chrome("") # 括号内需要将驱动器的路径写入
# 向网址发送请求
driver.get(url)
  • driver.webdriver.Chrome( ) 如果将驱动器chromedrive,放入python环境的文件夹这里可以就不用写东西更省事。
# 窗口最大化
driver.maximize_window()
# 窗口最小化
driver.minimize_window()
# 退出当前窗口
driver.close()
# 退出浏览器
driver.quit()
2.selenium操作表单元素

在这里插入图片描述

# 通过开发者工具通过id找到元素
inputTag = driver.find_element_by_id("kw")
inputTag.send_key("长城")# 发送数据
# 找到“百度一下”进行点击
driver.find_element_by_id("su").click()
# 获取到页面源码
driver.page_source()
# 获取cookie
driver.get_cookies()
# 获取当前的url
driver.current_url()

3.方法拓展

# 方法扩展,此方法不常用,但需要了解,防止看到有人用时一脸懵
from selenium.webdriver.common.by import By
#通过find_element_by_id id查找
driver.find_element_by_id('kw').send_keys('python')
#扩展方法
driver.find_element(By.ID,'kw').send_keys('python')

# find_element_by_name 名字查找
driver.find_element_by_name('wd').send_keys('动物')
driver.find_element(By.NAME,'wd').send_keys('动物')

# 通过find_element_by_class_name 类名查找
driver.find_element_by_class_name('s_ipt').send_keys('美食')
driver.find_element(By.CLASS_NAME,'s_ipt').send_keys('美食')

#最不常用的方法,通过find_element_by_tag_name 标签名查找
driver.find_element_by_tag_name('div').send_keys('被子')
driver.find_element(By.TAG_NAME,'').send_keys('被子')

# 最常用的方法,通过find_element_by_xpath 根据xpath语法获得元素
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('杯子')
driver.find_element(By.XPATH,'//*[@id="kw"]').send_keys('杯子')
  • 注意:(其他方法也是)
# element后面多个“ s ”在筛选数据时,结果会呈现为列表形式 
driver.find_elements_by_xpath()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值