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

选择器driver.page_source不会返回所有html

的原因是,driver.page_source只返回当前页面的静态HTML内容,而不包括通过JavaScript动态生成的内容。这是因为driver.page_source是通过WebDriver获取页面源代码的方法,它只能获取到页面加载完成时的静态HTML内容。

在现代的Web应用程序中,很多内容是通过JavaScript动态生成的,例如通过AJAX请求获取数据并动态更新页面内容。这些动态生成的内容不会包含在driver.page_source返回的HTML中。

要获取动态生成的内容,可以使用WebDriver提供的其他方法,如execute_script()来执行JavaScript代码,或者使用特定的选择器方法来获取特定元素的内容。

对于动态生成的内容,可以使用以下方法来获取:

  1. 使用execute_script()方法执行JavaScript代码,获取动态生成的内容。例如,可以使用JavaScript代码获取通过AJAX请求加载的数据,并将其插入到页面中。
  2. 使用WebDriver提供的等待机制,等待动态生成的内容加载完成后再获取。可以使用WebDriverWait类来等待特定的条件,例如某个元素的出现或某个元素的属性值变化。
  3. 使用特定的选择器方法来获取动态生成的内容。WebDriver提供了一系列的选择器方法,如find_element_by_xpath()、find_element_by_css_selector()等,可以根据元素的属性、文本内容等进行选择。

总结起来,选择器driver.page_source只返回当前页面的静态HTML内容,无法获取动态生成的内容。要获取动态生成的内容,可以使用execute_script()方法执行JavaScript代码,使用WebDriver提供的等待机制等待内容加载完成,或者使用特定的选择器方法来获取。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一文速学-selenium高阶性能优化技巧

页面加载策略主要有以下几种:normal(默认):等待整个页面加载完成,包括所有的静态资源(如图片、CSS文件)和异步的 JavaScript 脚本。...设置页面加载策略为 eager 模式意味着 WebDriver 会等待 DOM(文档对象模型)加载完成后立即返回,而不必等待所有相关资源(如样式表、图片、子框架)的加载。...driver.page_source driver.find_element(:tag_name => ‘body') 不过对于第二条语句来说,selenium需要去分析页面的结构,最后再找到对应的元素并输入结果...:使用精确的选择器(如 ID、ClassName)通常会比使用较复杂的选择器(如 XPath、CSS 选择器)更快。...这是因为精确的选择器可以更直接地定位到元素,而复杂的选择器可能需要遍历更多的 DOM 节点。在使用 XPath 或 CSS 选择器时,最好使用尽可能短的路径。

96323
  • python爬虫学习教程,爬取网易云音乐!

    然后看到如下页面,选择红框中的“所有专辑”,点击。 ? 这样就会看见所有的专辑列表,以及下方的翻页按钮。 ? 我们需要的就是所有专辑的图片、专辑名和专辑出版时间。看到这就可以构想一下爬虫的爬取逻辑了。...f.close() def request(self, url): #封装的requests 请求 r = requests.get(url) # 像目标url地址发送get请求,返回一个...os.listdir(path) return pic_names OK, 开始我们的爬虫逻辑部分: 这里值得注意的是,该页面使用frame 框架,使用Selenium + PhantomJS 后并不会加载...= driver.page_source 然后找到所有的封面元素: ?...() def request(self, url): # 封装的requests 请求 r = requests.get(url) # 像目标url地址发送get请求,返回一个

    91441

    Python爬虫之数据提取-selenium定位获取标签对象并提取数据

    对象定位标签元素获取标签对象的方法 掌握 标签对象提取文本和属性值的方法 ---- 1. driver对象的常用属性和方法 在使用selenium过程中,实例化driver对象后,driver对象有一些常用的属性和方法 driver.page_source...(根据标签的name属性值返回包含标签对象元素的列表) find_element(s)_by_xpath (返回一个包含元素的列表) find_element(s)_by_link_text...根据链接包含的文本获取元素列表) find_element(s)_by_tag_name (根据标签名获取元素列表) find_element(s)_by_css_selector (根据css选择器来获取元素列表...) 注意: find_element和find_elements的区别: 多了个s就返回列表,没有s就返回匹配到的第一个标签对象 find_element匹配不到就抛出异常,find_elements...匹配不到就返回空列表 by_link_text和by_partial_link_tex的区别:全部文本和包含某个文本 以上函数的使用方法 driver.find_element_by_id(

    3.4K10

    爬虫入门指南(1):学习爬虫的基础知识和技巧

    获取网页内容:目标网站接收到请求后,会返回网页的HTML源代码作为响应。 解析网页内容:爬虫利用解析技术(如XPath、正则表达式等)对HTML源代码进行解析,从中提取需要的信息。...常见的HTML标签有、、、、等等。通过理解这些标签及其嵌套关系,可以更好地理解网页的结构。...CSS选择器与XPath 网页解析可以使用不同的方法,其中两种常见的方法是CSS选择器和XPath。 CSS选择器:CSS选择器是一种用于选择HTML元素的语法。...descendant:选择当前节点的所有后代节点。 descendant-or-self:选择当前节点的所有后代节点和自身。 following:选择当前节点之后的所有节点。...= driver.page_source # 关闭浏览器 driver.quit() # 解析网页内容 soup = BeautifulSoup(html, "lxml") # 提取所需信息 articles

    58010

    Appium上下文和H5测试(一)

    3.如果 App 是 Web 的界面,那界面不会有布局边界显示,如有则说明是原生的界面。 二、想要操作这个 Html 页面 1.想通过代码点击立即购买,那 Web 自动化中用到了什么环境啊?...从图片中可以看出,上面是原生控件,下面是 Html 页面。所以,这个就是混合应用。 ? 3.如果 App 是 Web 的界面,那界面不会有布局边界显示,如有则说明是原生的界面。...2.使用 driver.page_source 获取 Html 页面。 driver 有个 page_source 选项,已经切换到 Html 页面,怎么切换的?...已经切换到 Html 页面了,那我们页面源码就是完整的 Html。通过 driver.page_source 得到完整的 Html,然后将它保存在我本地的文件当中,再用浏览器去打开。...Web View 这个元素当中放的才是 Html 页面,是不是等到 Html 页面加载出来之后再去获取所有的相关内容这样比较好。

    1K20

    selenium总结

    selenium提取数据总结附思维导图 1. driver对象的常用属性和方法 在使用selenium过程中,实例化driver对象后,driver对象有一些常用的属性和方法 driver.page_source...(根据标签的name属性值返回包含标签对象元素的列表) find_element(s)_by_xpath (返回一个包含元素的列表) find_element(s)_by_link_text...根据链接包含的文本获取元素列表) find_element(s)_by_tag_name (根据标签名获取元素列表) find_element(s)_by_css_selector (根据css选择器来获取元素列表...) 注意: find_element和find_elements的区别: 多了个s就返回列表,没有s就返回匹配到的第一个标签对象 find_element匹配不到就抛出异常,find_elements...匹配不到就返回空列表 by_link_text和by_partial_link_tex的区别:全部文本和包含某个文本 以上函数的使用方法 driver.find_element_by_id(

    34320

    Appium上下文和H5测试(一)

    3.如果 App 是 Web 的界面,那界面不会有布局边界显示,如有则说明是原生的界面。 二、想要操作这个 Html 页面 1.想通过代码点击立即购买,那 Web 自动化中用到了什么环境啊?...从图片中可以看出,上面是原生控件,下面是 Html 页面。所以,这个就是混合应用。 3.如果 App 是 Web 的界面,那界面不会有布局边界显示,如有则说明是原生的界面。...2.使用 driver.page_source 获取 Html 页面。 driver 有个 page_source 选项,已经切换到 Html 页面,怎么切换的?...已经切换到 Html 页面了,那我们页面源码就是完整的 Html。通过 driver.page_source 得到完整的 Html,然后将它保存在我本地的文件当中,再用浏览器去打开。...Web View 这个元素当中放的才是 Html 页面,是不是等到 Html 页面加载出来之后再去获取所有的相关内容这样比较好。

    68840

    爬虫实战:爬虫之 web 自动化终极杀手 ( 上)

    key=歌曲名 获取请求方式(post、get)百度音乐搜索歌曲为get请求 请求headers(伪装浏览器,避免被拒绝请求) 请求返回结果(html or json)百度音乐的返回结果为html。...要点是添加请求头(User-Agent、Host等) 发起get请求 等待请求返回 处理返回数据。因为百度音乐才用的是html作为返回数据。...它不仅是个隐形的浏览器,提供了诸如CSS选择器、支持Web标准、DOM操作、JSON、HTML5、Canvas、SVG等,同时也提供了处理文件I/O的操作,从而使你可以向操作系统读写文件等。...) html = driver.page_source # 坑:退出浏览器driver,必须手动退出driver。...= driver.page_source return html 点击运行之后,一切都风平浪静。

    4.9K10

    使用selenium定位获取标签对象并提取数据

    对象定位标签元素获取标签对象的方法 掌握 标签对象提取文本和属性值的方法 ---- 1. driver对象的常用属性和方法 在使用selenium过程中,实例化driver对象后,driver对象有一些常用的属性和方法 driver.page_source...(根据标签的name属性值返回包含标签对象元素的列表) find_element(s)_by_xpath (返回一个包含元素的列表) find_element(s)_by_link_text...根据链接包含的文本获取元素列表) find_element(s)_by_tag_name (根据标签名获取元素列表) find_element(s)_by_css_selector (根据css选择器来获取元素列表...) 注意: find_element和find_elements的区别: 多了个s就返回列表,没有s就返回匹配到的第一个标签对象 find_element匹配不到就抛出异常,find_elements...匹配不到就返回空列表 by_link_text和by_partial_link_tex的区别:全部文本和包含某个文本 以上函数的使用方法 driver.find_element_by_id(

    1.9K20

    Selenium与PhantomJS

    Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器...也可以用 第三方管理器 pip用命令安装:pip install selenium Selenium 官方参考文档:http://selenium-python.readthedocs.io/index.html...PhantomJS PhantomJS 是一个基于Webkit的“无界面”(headless)浏览器,它会把网站加载到内存并执行页面上的 JavaScript,因为不会展示图形界面,所以运行起来比完整的浏览器要高效...path路径下 D:\Python\Python36\ # 2.1.2 安装ChromeDriver http://chromedriver.storage.googleapis.com/index.html...) presence_of_element_located 元素加载出,传入定位元组,如(By.ID, 'p') presence_of_all_elements_located 所有元素加载出 element_to_be_clickable

    1.1K20

    使用Python轻松抓取网页

    网页抓取库: ●Requests ●Beautiful Soup ●lxml ●Selenium 01#Requests库 网页抓取首先向网站服务器发送HTTP请求(例如POST或GET ),该请求会返回一个包含所需数据的响应...与其他HTTP库不同,Requests库通过减少代码行简化了发出此类请求的过程,使代码更易于理解和调试,而不会影响其有效性。...例如,要输出此页面中的所有博客标题,就可以使用findAll()。在此页面上,会找到所有h2大小,且类属性为blog-card__content-title的博客标题。...这将返回与此XPath匹配的所有元素。注意XPath中的text()函数。该函数会提取h2元素内的文本。...●在进行任何抓取活动之前,请确保您正在抓取的是公共数据,并且绝不会侵犯第三方权利。另外,不要忘记查看robots.txt文件获得指导。

    13.6K20

    AI炒股-从东方财富网批量获取上市公司的全部新闻资讯

    然后程序自动从东方财富网批量获取上市公司的全部新闻资讯 查看相关元素在源代码中的位置: 新闻标题: 新闻链接地址:<a href="http://finance.eastmoney.com/a/202405233084538683.<em>html</em>" target="_blank"...keyword={stock}; 解析源代码,并打印输出; 定位css选择器=#app > div.main.container > div.c_l > div.news_list > div:nth-child...a标签(number的值是从1到10),提取其内容作为新闻标题,保存到{stock}.xlsx的第1列;提取a标签的href值作为新闻URL,保存到{stock}.xlsx的第2列; 5、定位css选择器...keyword={stock}' driver.get(url) # 等待页面加载完成 time.sleep(5) # 获取网页源代码 html = driver.page_source print("

    7610

    【Web APIs】DOM 文档对象模型 ④ ( querySelector 函数 | querySelectorAll 函数 | NodeList 对象 )

    " CSS 选择器 " , 函数返回匹配该选择器的第一个 DOM 元素 , 如果没有与之匹配的元素 , 返回 null 值 ; Document 和 Element 都定义了 querySelector...CSS 选择器则会抛出 SYNTAX_ERR 异常 ; 返回值 : 返回 符合 CSS 选择器的 第一个 DOM 元素 , 类型是 Element 对象 ; CSS 选择器参考 : 【CSS】CSS...(selectors); selectors 参数 : 若干 有效的 CSS 选择器字符串 , 如果字符串内容不是 CSS 选择器则会抛出 SYNTAX_ERR 异常 ; 返回值 : 返回 符合 CSS...选择器所有 DOM 元素 , 类型是 NodeList 对象 ; NodeList 对象 与 HTMLCollection 对象类似 , 都封装了若干 Element 对象 ; 参考文档 : querySelectorAll...> 执行结果 : 三、NodeList 对象 1、NodeList 对象简介 在上述 querySelectorAll 函数 中 , 获取的符合 指定选择器所有 DOM 元素 , 返回值的类型是

    11810
    领券