python爬虫动态html selenium.webdriver

news/2024/7/19 12:32:08 标签: python, 爬虫

python爬虫:利用selenium.webdriver获取渲染之后的页面代码!

 

1 首先要下载浏览器驱动:  

  常用的是chromedriver 和phantomjs

  chromedirver下载地址:   https://npm.taobao.org/mirrors/chromedriver
  phantomjs下载地址:   http://phantomjs.org/download.html

  使用chromedriver要保证有chrome浏览器

 

2 安装

  phantomjs:

    将下载好的文件 解压缩(此处版本用xxx代替了)

    tar -xvf phantomjs-xxxx.tar.bz2

    将压缩结果移动到系统中软件应该呆在的地方去(此处版本用xxx代替了)

    sudo mv phantomjsxxx  /usr/local/src/phantomjs

    创建软连接到系统环境 这样就可以使用phantomjs命令了

    sudo ln -sf  /usr/local/src/phantojs/bin/phantomjs  /usr/local/bin/phantomjs

    将软连接 添加执行的权限

    sudo chmod u+x,o+x  /usr/local/bin/phantomjs

    检验一下正常使用: 返回版本信息就代表能正常使用

    phantomjs --version

 

  chromedriver:

    将下载的文件移动到软件应该呆的目录去:

    sudo mv chromedriver  /usr/local/bin/chromedriver

    改变用户执行的权限:

    sudo chmod u+x,o+x   /usr/local/bin/chromedriver

    检验是否正常使用:

    chromedriver --version

 

3 程序代码:

 1 from selenium import webdriver
 2 import time
 3 # 获取一个Chrome的驱动
 4 driver = webdriver.Chrome()
 5 '''
 6 发送请求
 7 '''
 8 driver.get('http://www.baidu.com/')
 9 
10 # 设置打开窗口的大小
11 driver.set_window_size(1024,768)
12 
13 '''
14 获取页面内容的常用方式
15 '''
16 # 获取元素并输入内容
17 driver.find_element_by_id('kw').send_keys('苹果')
18 # 获取元素并点击
19 driver.find_element_by_id('su').click()
20 # 利用xpath获取
21 # div_list = driver.find_element_by_xpath('//div')
22 #利用页面内容
23 # next_page = driver.find_element_by_link_text('下一页').get_attribute('href')
24 
25 # 将浏览器页面截图保存本地
26 driver.save_screenshot('./百度.png')
27 
28 # 获得浏览器的页面源码(经过渲染之后)
29 html = driver.page_source
30 
31 print('*'*50)
32 
33 # 获取页面的cookies
34 cookie_list = driver.get_cookies()
35 # cookie 转换成字典
36 cookies = { dict['name']:dict['value'] for dict in cookie_list }
37 print(cookies)
38 
39 
40 # 退出当前页面
41 driver.close()
42 # 退出浏览器
43 driver.quit()

 

转载于:https://www.cnblogs.com/Lin-Yi/p/7653571.html


http://www.niftyadmin.cn/n/513430.html

相关文章

MP3→MP4 根据音乐自动生成视频;入职必备!看看新东家的工作强度;斯坦福大学·计算拓扑学电子书;自监督模型课程;前沿论文 | ShowMeAI资讯日报

👀日报合辑 | 📆电子月刊 | 🔔公众号下载资料 | 🍩韩信子 工具&框架 🚧 『Video Killed The Radio Star』根据音乐自动生成视频 https://github.com/dmarx/video-killed-the-radio-star Video Killed The Radio…

二叉树与堆基本操作

二叉树与堆二叉树满二叉树完全二叉树二叉树的基本性质堆小根堆的定义大根堆的定义建小堆建大堆堆的基本操作(以小堆为例)堆的创建堆销毁堆判空求堆中元素个数取堆顶元素堆中元素的删除堆的插入(重点*****)二叉树 二叉树定义: 每个节点的度小…

linux sleep用法

应用程序&#xff1a;#include <syswait.h>usleep(n) //n微秒Sleep&#xff08;n&#xff09;//n毫秒sleep&#xff08;n&#xff09;//n秒驱动程序&#xff1a;#include <linux/delay.h>mdelay(n) //milliseconds 其实现#ifdef notdef#define mdelay(n) (\{unsign…

angualrJs清除定时器

angualrJs清除定时器爬坑之路&#xff1a; 今天发现一个奇怪问题&#xff0c;放在自定义指令里边的定时器竟然在页面跳转之后&#xff0c;在另一个页面这个循环定时器还在执行&#xff0c;这肯定是不行的&#xff0c;会影响系统的性能。 我在angular里边用原生的方法window.onu…

Kubernetes的ConfigMap说明

这篇博文&#xff0c;我们来说一说&#xff0c;关于在kubernetes的pod中自定义配置的问题。 我们知道&#xff0c;在几乎所有的应用开发中&#xff0c;都会涉及到配置文件的变更&#xff0c;比如说在web的程序中&#xff0c;需要连接数据库&#xff0c;缓存甚至是队列等等。而我…

入门学python(一)

python基础 0变量1、python 中变量名不能以数字开头2、变量的赋值&#xff0c;以及变量值的交换3、变量内容的输出&#xff08;单双引号都可以&#xff09;4、换行 \n5、重复行输出值的比较while 循环语句break 跳出循环模块的导入 import随机数 random数字类型整数浮点数复数&…

室内设计交给AI靠谱么?emmm;Python日常任务脚本100+;数据可视化实战入门·电子书;CVPR论文扩展LaTeX模板;前沿论文 | ShowMeAI资讯日报

&#x1f440;日报合辑 | &#x1f4c6;电子月刊 | &#x1f514;公众号下载资料 | &#x1f369;韩信子 &#x1f4e2; InteriorAI&#xff1a;拍一张照&#xff0c;AI 就能帮你做室内设计了 https://interiorai.com/ InteriorAI 是一个新的AI图像生成平台&#xff0c;基于 …

结对编程项目作业4

项目托管平台地址:https://gitee.com/wjxxxxx/TanChiShe/blob/master/新建文本文档.py 功能测试: 移动功能, 测试方法:移动 上下左右 吃食物长大功能, 测试方法 通过移动来控制蛇吃到食物 来控制蛇增长 其他补充说明: 还需要完善转载于:https://www.cnblogs.com/wjxx/p/7657672…