赞
踩
动态加载数据意味着直接对网址进行请求是无法直接拿到页面数据的,我们可以通过网页上的抓包工具定位到network对网页进行请求,并查看网页上的某个数据是否在network请求页面加载的数据页中
动态加载的数据是如何来的?
selenium模块和爬虫之间具有怎样的关联?
- 便捷的获取网站中动态加载的数据
- 边界的实现模拟登录
什么是selenium模块?
- 基于
浏览器自动化
的一个模块
selenium模块使用流程:
- 环境安装:
pip install selenium
⭐- 下载一个浏览器的驱动程序:用什么浏览器就下载什么浏览器驱动程序:谷歌驱动程序
对于现在正在使用的google浏览器根据版本号寻找对应驱动程序即可。- 实例化一个浏览器对象
- 编写基于浏览器自动化的操作代码:
- 发起请求:get(url)
- 标签定位:find系列方法
- 标签交互:send_keys(‘xxx’)
- 执行js程序:execte_script(‘jsCode’)
- 关闭浏览器:quit()
from selenium import webdriver from lxml import etree from time import sleep # 实例化一个浏览器对象(传入浏览器的驱动程序) bro = webdriver.Chrome(executable_path='E:\Google\chromedriver') # 让浏览器发起一个指定的url对应请求 bro.get('http://scxk.nmpa.gov.cn:81/xk/') # 获取浏览器当前的页面源码数据 page_text = bro.page_source # 解析企业名称 tree = etree.HTML(page_text) li_list = tree.xpath('//ul[@id="gzlist"]/li') for li in li_list: name = li.xpath('./dl/@title')[0] print(name) sleep(5) # 关闭浏览器 bro.quit()
from selenium import webdriver from time import sleep bro = webdriver.Chrome(executable_path=r'E:\Google\chromedriver') bro.get('https://www.taobao.com/') # 找到搜索框:标签定位 search_input = bro.find_element_by_id('q') # 返回所定位的标签 # 标签的交互 search_input.send_keys('Iphone') # 执行一组js程序 :滚轮滚动一个屏幕的高度 bro.execute_script('window.scrollTo(0,document.body.scrollHeight)') sleep(2) # 点击搜索按钮 class = 'btn-search tb-bg' btn = bro.find_element_by_css_selector('.btn-search') # btn = bro.find_element_by_class_name('btn-search') btn = bro.find_element_by_class_name('tb-bg') btn.click() bro.get('https://www.baidu.com') sleep(2) # 回退 bro.back() sleep(2) # 前进 bro.forward() sleep(5) bro.quit()
- 如果定位的标签是存在iframe标签之中的则必须使用switch_to.frame(id)
- 动作链(拖动):
from selenium.webdriver import ActionChains
# 动作链
- 实例化动作链对象:
action = ActionChains(bro)
action.click_and_hold(div)
:长按并点击
move_by_offset(x,y)
:想要偏移的像素值
action.move_by_offset(17,yoffset=0).perform()
:让动作链立即执行
action.release()
释放动作链对象
iframe就是我们常用的iframe标签:<iframe>。iframe标签是框架的一种形式,也比较常用到,iframe一般用来包含别的页面,例如我们可以在我们自己的网站页面加载别人网站或者本站其他页面的内容。
iframe标签的最大作用就是让页面变得美观。
iframe标签的用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。