-
概念:基于浏览器自动化的模块
-
自动化:可以通过代码制定一些列的行为动作,然后将其作用到浏览器中
-
安装selenium模块:
pip install selenium
-
安装谷歌浏览器驱动(找到合适自己电脑的):
http://chromedriver.storage.googleapis.com/index.html
-
selenium和爬虫之间的关联
- 1.便捷的捕获到任意形式动态加载的数据(可见即可得)
- 2.实现模拟登陆
简单爬取一个网页:
from selenium import webdriver
from time import sleep
# 1. 基于浏览器的驱动程序实例化一个浏览器对象
bro = webdriver.Chrome(executable_path='./chromedriver')
# 对目的网站发起请求
bro.get('https://www.jd.com/')
运行一下,我们就打开了某东页面:
我们向搜索框输入iphoneX:
可以利用xpath公式先进行标签定位:
# 标签定位
search_text = bro.find_element_by_xpath('//*[@id="key"]')
search_text.send_keys('iphoneX') # 向标签中录入数据
运行后可以看到:
点击按钮:
# 搜索按钮
btn = bro.find_element_by_xpath('//*[@id="search"]/div/div[2]/button')
btn.click()
运行后可以看到:
在搜索结果页面进行滚轮向下滑动的操作(执行js操作:js输入)
停顿2秒后滑动:因为selenium比较慢,为了起到效果,所以要延迟2秒
# 在搜索结果页面进行滚轮向下滑动的操作(执行js操作:js输入)
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(2)
bro.quit()
运行后可以看到:
完整代码如下:
from selenium import webdriver
from time import sleep
# 1. 基于浏览器的驱动程序实例化一个浏览器对象
bro = webdriver.Chrome(executable_path='./chromedriver')
# 对目的网站发起请求
bro.get('https://www.jd.com/')
# 标签定位
search_text = bro.find_element_by_xpath('//*[@id="key"]')
search_text.send_keys('iphoneX') # 向标签中录入数据
# 搜索按钮
btn = bro.find_element_by_xpath('//*[@id="search"]/div/div[2]/button')
btn.click()
#
sleep(2)
#
# 在搜索结果页面进行滚轮向下滑动的操作(执行js操作:js输入)
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(2)
bro.quit() # 关闭退出。浏览器也关闭了



