我一直在尝试使用硒来刮擦整个网页.我希望它们中至少有一小部分是水疗中心,如Angular,React,Vue,所以这就是我使用Selenium的原因.

我需要下载整个页面(如果某些内容没有从延迟加载加载,因为没有向下滚动,这很好).我试过设置time.sleep()延迟,但是没有用.在我得到页面之后,我希望将其哈希并将其存储在数据库中以便稍后进行比较,并检查内容是否已更改.目前,散列每次都不同,这是因为每次缺少不同的部分数量时,selenium不会下载整个页面.我已经在几个网页上证实了这一点,而不仅仅是一个单一的网页.

我也可能有1000个网页通过手工获取所有链接所以我没有时间在它们上找到一个元素以确保它被加载.

这个过程需要多长时间并不重要.如果需要1个小时,那么速度并不重要,只有准确性.

如果您有其他想法,请分享.

我的司机声明

from selenium import webdriver

from selenium.common.exceptions import WebDriverException

driverPath = '/usr/lib/chromium-browser/chromedriver'

def create_web_driver():

options = webdriver.ChromeOptions()

options.add_argument('headless')

# set the window size

options.add_argument('window-size=1200x600')

# try to initalize the driver

try:

driver = webdriver.Chrome(executable_path=driverPath, chrome_options=options)

except WebDriverException:

print("failed to start driver at path: " + driverPath)

return driver

我的网址叫我超时= 20

driver.get(url)

time.sleep(timeout)

content = driver.page_source

content = content.encode('utf-8')

hashed_content = hashlib.sha512(content).hexdigest()

^每次得到不同的哈希,因为相同的网址不生成相同的网页

最佳答案 由于受测试的应用程序(AUT)基于Angular,React,Vue,在这种情况下Selenium似乎是完美的选择.

现在,因为你没有从延迟加载加载某些内容这一事实,因为没有滚动使得用例可行.但是在所有可能的方面……没有时间在它们上面找到一个元素以确保它被加载…无法真正补偿导致time.sleep(),因为time.sleep()有一定的缺点.您可以在How to sleep webdriver in python for milliseconds中找到详细的讨论.值得一提的是,对于所有1000多个网页,HTML DOM的状态将有所不同.

一些可行的解决方案:

>页面标题

>页面标题

>另一个解决方案是调整功能pageLoadStrategy.您可以将所有1000个奇数网页的pageLoadStrategy设置为公共点,分配值:

>正常(整页加载)

>渴望(互动)

>没有

如果你实现了pageLoadStrategy,那么page_source方法将在同一个跳转点被触发,你可能会看到相同的hashed_content.

python下载整个网站_python – Selenium下载整个HTML相关推荐

  1. python实现视频网站_python实现各大视频网站电影下载

    一.前期准备 有时候我们想下载自己喜欢的电影,但很多时候要么需要安装客户端才能下载,或者干脆不提供下载的服务,很是不爽, 因此这里我们介绍使用python来实现网站的电影下载功能,凡是能在线观看的,都 ...

  2. python下载整个网站_python 下载整个网站 | 学步园

    用python实现的下载整个网站工具. 核心流程很简单: 1. 输入网站地址 2. url,得到响应的内容. 3. 根据响应的http报文头,如果类型为html, 则从第4步开始执行.如果是其它类型, ...

  3. python免费下载及安装_Python的下载及安装

    Python下载可以在百度查找"Python下载": 或者直接搜索此网址:https://www.python.org/getit/ 在官网有python2和python3可供选择 ...

  4. python下载vip素材_Python素材下载爬虫,多线程rar下载爬虫

    一个多线程素材下载爬虫,实现多线程素材下载,包含素材包rar,素材图及素材描述,应用了经典的生产者与消费者模式,不过数据没有下载全,容易出现卡死的问题,期待后期能够解决相关问题,可以算是一个半成品,供 ...

  5. python 日历控件_python selenium 处理时间日期控件(十六)

    测试过程中经常遇到时间控件,需要我们来选择日期,一般处理时间控件通过层级定位来操作或者通过调用js来实现. 1.首先我们看一下如何通过层级定位来操作时间控件. 通过示例图可以看到,日期控件是无法输入日 ...

  6. python自动化流程概念_python selenium 自动化流程的一些总结与思考

    首先要考虑的项目为什么要做自动化测试?(主要从自动化测试的优点着手) 其次是什么项目才适合做自动化测试? 自动化测试覆盖率要达到什么样的程度?因为都知道不可能达到100%的,不然脚本太臃肿,反而会失去 ...

  7. python自动投递简历_python selenium 实现简历自动刷新

    1 安装Python 和 selenium (1)下载Python 官网地址: https://www.python.org/ftp/python/3.6.8/python-3.6.8-amd64.e ...

  8. python海龟图画龙珠_Python selenium+webdriver 实战龙珠直播

    selenium是一个自动化的web应用测试工具,直接可以运行在浏览器中模拟用户进行操作,有点类似于机器人,可以模拟用户进行点击,登陆,输入等操作. webdriver可以看成是驱动器,用来驱动我们的 ...

  9. python爬音乐网站_python爬虫-爬取高逼格音乐网站《落网》

    关于 落网,一个高逼格的音乐网站,是很多文艺青年经常逛的网站.经常下载落网音乐到本地,一首一首的下载十分的痛苦.最近刚好在学习python爬虫的东西,刚好把落网音乐的爬取当做一个练习项目来实践(IT从 ...

最新文章

  1. iOS 字符属性NSAttributedString描述
  2. 9.Methods(二)
  3. 【转】系统管理类DOS命令汇总
  4. 模拟键盘 键盘虚拟代码
  5. Python数据库使用MySQL
  6. [css] 用css实现倒影的效果
  7. 白话说编程之java线程
  8. SAP License:SAP有限度的多语言支持
  9. 实验二 软件工程个人项目
  10. 常用计算机杀毒软件名称,最常用的杀毒软件有哪些
  11. 黄一老师:关于个人征信这几点你都未必知道!
  12. 利用POI将word转换成html实现在线阅读
  13. Google Colab中把pyth3.7版本更换成python2.7
  14. Matplotlib基础02:散点图、折线图与柱状图
  15. 航顺HK32F030MF4P6 RST作GPIO SWCLK作EXTI5 SWDIO作ADC_AIN0
  16. 【LocalDateTime常见用法】
  17. 什么是大数据公司面临的问题以及如何使用大数据解决
  18. 库的基本操作与表格创建及查询删除表
  19. param name=robot_description command= $(find xacro)/xacro --inorder ' $(arg model)' 到底什么意思
  20. SQL窗口函数-截止至某天的累计值

热门文章

  1. 企业微信应用实战踩坑之路
  2. 科技风PPT汇报模板
  3. 关于软件的交互性设计
  4. 改改host,轻松登录dropbox!(For Windows)
  5. IOS版伪春菜开发笔记1.0之XCODE快速上手篇
  6. poco mysql 安装,CentOS 上安装 POCO - 文章教程
  7. 怎样才能写出好的读书笔记
  8. 三菱变频器常见故障分析与故障处理方法
  9. java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
  10. java 直接读取zip文件和文件内容