我正试图从航班搜索页面抓取一些数据.

此页面以这种方式工作:

你填写一个表格,然后你点击按钮搜索 – 这没关系.当您单击该按钮时,您将被重定向到包含结果的页面,这就是问题所在.这个页面连续添加结果,例如一分钟,这不是什么大问题 – 问题是得到所有这些结果.当您使用真正的浏览器时,您必须向下滚动页面并显示这些结果.所以我试图使用Selenium向下滚动.它可能在页面底部向下滚动可能非常快,或者是跳转而不是滚动页面不会加载任何新结果.

当你慢慢向下滚动时,它会重新加载结果,但是如果你这么做就会停止加载.

我不确定我的代码是否有助于理解,所以我附上它.

SEARCH_STRING = """URL""" class spider(): def __init__(self): self.driver = webdriver.Firefox() @staticmethod def prepare_get(dep_airport,arr_airport,dep_date,arr_date): string = SEARCH_STRING%(dep_airport,arr_airport,arr_airport,dep_airport,dep_date,arr_date) return string def find_flights_html(self,dep_airport, arr_airport, dep_date, arr_date): if isinstance(dep_airport, list): airports_string = str(r'%20').join(dep_airport) dep_airport = airports_string wait = WebDriverWait(self.driver, 60) # wait for results self.driver.get(spider.prepare_get(dep_airport, arr_airport, dep_date, arr_date)) wait.until(EC.invisibility_of_element_located((By.XPATH, '//img[contains(@src, "loading")]'))) wait.until(EC.invisibility_of_element_located((By.XPATH, u'//div[. = "Poprosíme o trpezlivosť, hľadáme pre Vás ešte viac letov"]/preceding-sibling::img'))) self.driver.execute_script("window.scrollTo(0,document.body.scrollHeight);") self.driver.find_element_by_xpath('//body').send_keys(Keys.CONTROL+Keys.END) return self.driver.page_source @staticmethod def get_info_from_borderbox(div): arrival = div.find('div',class_='departure').text price = div.find('div',class_='pricebox').find('div',class_=re.compile('price')) departure = div.find_all('div',

转载于:https://www.cnblogs.com/perfectdata/p/10586183.html

使用Selenium慢慢向下滚动页面相关推荐

  1. selenium自动向下滚动页面,并指定最大滑动距离

    需要selenium控制的chrome向下滑动,自动加载一些内容,核心代码是: browser.execute_script("window.scrollBy(0,300)") 这 ...

  2. html页面怎么加向下滚动,如何使用jQuery向上或向下滚动页面到锚点?

    如何使用jQuery向上或向下滚动页面到锚点? 我正在寻找一种方法来包含幻灯片效果,当您单击页面上或下的本地锚点链接时. 我想要一个你有这样一个链接的东西:link text, img etc. 也许 ...

  3. html div跟随页面滚动条滚动,javascript – 当我向下滚动页面时,如何让div跟随我?...

    您可以在窗口对象上挂钩scroll事件.处理事件时,请查看窗口/文档的垂直滚动位置(有关如何操作,请参阅SO上的 this answer).对div使用绝对定位,并根据需要将其顶部更新为坐标. FWI ...

  4. 向下滚动页面导航悬浮

    为什么80%的码农都做不了架构师?>>>    做两个导航,第二个隐藏 下拉到一定位置,显示第二个,position:fixed $(function(){$(window).scr ...

  5. html 下拉到一定位置,浏览器向下滚动到一定位置继续滚动时,侧边导航固定在页面顶部,再滚动到一定位置时页面再向下滚动侧边导航不再固定。这种效果怎么实现呢...

    1.浏览器向下滚动到一定位置继续滚动时,侧边导航固定在页面顶部,再滚动到一定位置时页面再向下滚动侧边导航不再固定.页面向上滚动到一定位置继续滚动时,侧边导航保持在原来位置.这种效果怎么实现呢 2.. ...

  6. 通过uc.js实现pc firefox页面向下滚动自动隐藏导航栏,复刻firefox移动版的丝滑体验

    页面向下滚动自动隐藏firefox导航栏 简述 firefox移动版有个滑动页面浏览时自动隐藏导航栏的功能,这个功能很机智,能够最大化的同时让你尽量无感.然后想在pc实现这个功能,搜了一下发现uc.j ...

  7. Python selenium定位动态下拉框

    Python selenium定位动态下拉框 1.下拉框元素需要点击控件才展示 这里可以使用XPAN定位到下拉框,使用driver.find_element(By.XPATH,"路径&quo ...

  8. Android滚动页面位置指示器:CircleIndicator

     Android滚动页面位置指示器:CircleIndicator CircleIndicator是github上的一个开源的用于页面滚动时候的位置指示器,指示当前页面在总的页面中的位置和前后位置 ...

  9. ajax实现向上正在加载,向上滚动或者向下滚动分页异步加载数据(Ajax + lazyload)

    /**** desc : 分页异步获取列表数据,页面向上滚动时候加载前面页码,向下滚动时加载后面页码 ajaxdata_url ajax异步的URL 如data.php page_val_name a ...

最新文章

  1. QApplication类详细描述
  2. select2 ajax demo,Select2下拉框示例
  3. 搜索推荐炼丹笔记:位置偏差里的惊喜
  4. SSh结合Easyui实现Datagrid的分页显示
  5. SSM前后端分离及跨域
  6. 服务器如何安装多系统,服务器如何安装双操作系统
  7. 第四节:EF Core的并发处理
  8. python画简便的图-python如何画出漂亮的地图?网友:教教我呗
  9. sql date 函数_什么是SQL DATE()函数?
  10. Cross-validation 交叉验证
  11. listView 下拉动态加载数据
  12. 机器人耗时 0.38 秒还原魔方;微软推出 Windows ML ,将机器学习带入桌面
  13. markdown温习笔记
  14. CSIG基础研究岗腾讯面试经验
  15. vlookup函数使用过程
  16. mysql多条语句union_Mysql同时执行多个select语句——union
  17. SQL vs NoSQL 没有硝烟的战争!
  18. 网站服务器商标属于哪类,网络平台商标注册属于什么类别?-商标分类表-猪八戒知识产权...
  19. linux下ftp搭建流程
  20. POJ1753 Flip Game题解

热门文章

  1. SAP FICO产品成本组件分析表开发说明书(包括测试样例、程序代码仅作参考,不保证一定可以运行)
  2. 面具卡米怎么删模块_红米K20Pro/尊享版开启双扬声器-面具模块-享受更立体的声音...
  3. win10蓝牙允许设备连接到此计算机,蓝牙允许设备进行连接用不了_win10蓝牙允许设备连接灰色怎么解决...
  4. 元数据及数据仓库相关概念
  5. ipython的介绍
  6. Html5Ccss3响应式布局简单总结
  7. java合并排序_Java中的合并排序算法
  8. SVG_27_指尖魔法_等你施法_斗罗大陆史莱克七怪_闪亮登场
  9. SQL SERVER 2000数据库置疑 紧急模式
  10. git删除指定commit