首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python如何获取动态页面数据

在日常使用python爬取数据的时候会遇到一些动态页面,有些网页的HTML代码是由javascript动态生成的,直接爬取可能会出现无法加载的情况,需要用phantomJS和selenium模拟浏览器,...可以模拟人类在浏览器上的一些行为,自动处理浏览器上的一些行为,比如点击,填充数据,删除cookie等。chromedriver是一个驱动Chrome浏览器的驱动程序,使用他才可以驱动浏览器。...有时候窗口中有很多子tab页面,这些都是需要进行切换的。...selenium提供了一个叫做switch_to_window来进行切换,具体切换到哪个页面,可以从driver.window_handles中找到。...示例代码如下# 打开一个新的页面self.driver.execute_script("window.open('"+url+"')")# 切换到这个新的页面中self.driver.switch_to_window

92260
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python下利用Selenium获取动态页面数据

    来源:http://www.51testing.com   利用python爬取网站数据非常便捷,效率非常高,但是常用的一般都是使用BeautifSoup、requests搭配组合抓取静态页面(即网页上显示的数据都可以在...使用selenium模拟浏览器行为更新网页获取更新后的数据。本文接下来着重讲述这种方法。...打开网站后,可以看到需要爬取的数据为一个规则的表格,但是有很多页。 ?   在这个网站中,点击下一页页面的url不发生变化,是通过执行一段js代码更新页面的。...因此本文思想就是利用selenium模拟浏览器进行点击,点击“下一页”后页面数据进行更新,获取更新后的页面数据即可。...  flag=1    # 利用find_element_by_link_text方法得到下一页所在的位置并点击,点击后页面会自动更新,只需要重新获取driver.page_source即可   driver.find_element_by_link_text

    3.2K30

    几种常见的获取页面元素数据的方法

    页面之所以是动态的,其实不仅仅是因为他是具有js的动态效果的,还有一部分是因为他的数据是动态的,所以页面才会显得很有活性,但是很多的时候获取数据是一个很恶心的事情,动不动就拿不到数据,作为一个前端,其实很大一部分时间也都是在处理数据...,今天简单的将常见的几种获取数据的办法记录一下,不为别的,以后可以直接用,虽然简单的要死,但是还是记录一下比较好,说不定哪天脑子抽风忘记了.... ?...--Jquery根据class获取数据--> ...> PS:页面操作dom元素的时候,如果是操作的是name,那么是不可以直接拿到数据的,是因为页面上是允许多个name属性的,所以nana取得其实是元素,不是数据,也就是说您可以在一个页面上面写很多的name...,最后获取的是所有的长度。

    66810

    什么叫单页面开发_获取当前页面url

    ,每次跳转不请求html文件,而是通过路由跳转来渲染组件 优点: 页面切换快,良好的交互体检,因为每次切换页面时,不需要重新加载整个页面,不需要做html文件的请求,这样就节约了很多http发送时延,获取数据也是通过...ajax异步获取,没有页面之间的切换,就不会出现白屏现象,也不会出现假死并有闪烁现象,页面显示流畅 良好的前后端分离模式,后端不再负责模版渲染,输出页面工作,即同一套后端程序代码,不用修改就可以用于web...界面,手机,平板等多种客户端 减轻服务器压力,单页面相对服务器压力小,服务器只用于输出数据就可以,不用管展示逻辑和页面合成。...,搜索引擎抓取到的就只是空页面 不利于seo seo本质就是一个服务器向另一个服务器发请求,解析请求内容,但是搜索引擎是不会去执行请求到的js的,也就是说搜索引擎的基础爬虫的原理就是抓取url,然后获取...html源代码并解析,如果一个单页应用,html在服务器还没有渲染部分数据,在浏览器才渲染出数据,即搜索引擎请求的html是模型页面而不是最终数据的渲染页面,这样就很不利于内容被搜素引擎搜索到 seo

    3.3K30

    vue.js数据渲染完成后,获取页面高度问题

    遇到的问题 通过接口请求出来的数据,渲染到页面上,再获取元素内容高度的时候,高度为0 为什么高度会是0 因为我是在接口返回数据后,就直接在回调函数里获取了元素内容的高度。...虽然数据获取到了,但是页面还没有及时的渲染出来,所以获取的内容高度就为0了 然后我就延迟2秒获取内容高度,发现内容高度是渲染完成后的正常高度,但是这样肯定是不行的。...部分代码示例一: mounted() { this.getDataList(); //调用方法 }, methods: { //获取数据列表 getDataList() {...1&keywords=') .then(function (res) { that.dataList = res.data.data; //将获取到的数据赋值给...(() => { console.log(content.offsetHeight); // 600 }) } }, methods: { //获取数据列表

    6.1K30
    领券