
如今的网站反爬手段层出不穷,不像以前那么简单,网页在后端渲染好数据,再发送给客户端。现在通用的网页技术,前后端分离,前端中通过js函数发送请求向后端请求数据然后在渲染数据,因此,我们要是简单的发送requests请求,最后得到只是一堆js函数
当然,爬虫中也有相应的破解方法:selenium自动化工具,那就是驱动浏览器去模拟人为地获取数据
安装 1、安装selenium库pip install selenium # 上面命令安装失败请用下面命令 pip install selenium -i http://pypi.douban.com/simple --trusted-host pypi.douban.com2、ChromeDriver
2.1、如果Selenium要和Chrome等主流浏览器衔接,则对应的浏览器需要安装驱动
2.2、比如:selenium要和Chrome连接,则需要安装 ChromeDriver 驱动
2.3、在 ChromeDriver Mirror 找与Chrome对应版本的驱动(相近的版本也可以)
2.4、下载并解压后,把chromedriver.exe 放到工程目录下
2.5、确保Chrome浏览器进行环境变量设置
使用1、访问百度首页
百度一下,你就知道
2、编写代码
from selenium import webdriver
from time import sleep
def Test(url):
# 创建驱动配置
option = webdriver.ChromeOptions()
# 配置后台驱动浏览器
# option.add_argument('headless')
# 创建driver驱动对象
driver = webdriver.Chrome(executable_path='./chromedriver.exe', chrome_options=option)
# 访问页面
driver.get(url)
# 通过标签id,定位输入框,输入搜索值
driver.find_element_by_id('kw').send_keys('csdn')
sleep(1)
# 通过标签id,定位搜索按钮
driver.find_element_by_id('su').click()
sleep(5)
# 截图
driver.save_screenshot('baidu.png')
# 获取当前浏览器窗口的网页
content = driver.page_source
print(content)
if __name__ == '__main__':
url = 'https://www.baidu.com/'
Test(url)
总结
常用的selenium方法
# 通过标签的id值锁定标签(不推荐) driver.find_element_by_id() # 通过xpath语法锁定标签 driver.find_element_by_xpath() # 清空锁定的标签的值 driver.find_element_by_xpath().clear() # 往锁定的标签中填写值 driver.find_element_by_xpath().send_keys() # 获取当前驱动的浏览器的cookies值 driver.get_cookies() # 获取当前浏览器窗口中的网页(破解动态数据) driver.page_source # 截图当前浏览器的窗口 driver.save_screenshot() # 点击锁定的标签 driver.find_element_by_id().click()
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)