python利用selenium获取网页head中的title

这篇具有很好参考价值的文章主要介绍了python利用selenium获取网页head中的title。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

工作中有批量获取网页head中title的应用场景,实践中遇到了一些问题,以此记录一下。

  1. 通过检查发现网页的head中的title确实有文本,但是使用selenium的driver.title提取到了空字符串’’

  2. 接着使用driver.find_element(By.XPATH, ‘/html/head/title’).is_displayed(),得到False,说明title被隐藏了

  3. 进一步检查一下head,使用

    js = "document.head"
    print(driver.execute_script(js))# 得到None
    
    js = "document.title"
    print(driver.execute_script(js))# 同样是None
    

    说明head整个给隐藏了?

  4. 开始百度谷歌,尝试使用了css选择器,XPATH定位等,尝试了bs4解析网页,添加js 语句去使head displayed设置维True等等,都失败了,得到同样结果。

解决方法

最终找到了一个方法解决了问题。
代码如下,利用XPATH先定位元素,然后get_attribute(“textContent”)可以获得到隐藏的元素,前面的定位器应该也可以改成自己所需要的其他定位。文章来源地址https://www.toymoban.com/news/detail-535950.html

driver.find_element(By.XPATH, '/html/head/title').get_attribute("textContent")

完整代码如下

# 返回网站名称列表,数据来源列表
def get_site_name(urls,site_names):
    options = webdriver.ChromeOptions()
    options.page_load_strategy = 'none' # 我只要部分html元素,所以选择不渲染全部html内容
    driver = webdriver.Chrome('C:\\Program Files\\Google\\Chrome\\Application\\chromedriver.exe', options=options) # 自己的路径
    driver.maximize_window() # 最大化窗口 
    
    # wait = WebDriverWait(driver, 5)
    names = []
    state = []
    for i in tqdm(range(len(urls))):
        url = urls[i]
        try:
            driver.get(url)
            # wait.until(driver.find_element(By.XPATH, '/html/head/title'))
            time.sleep(1) # 一定要sleep 1s,不然会找不到元素,也就是要等待网页打开才行
            title = driver.find_element(By.XPATH, '/html/head/title').get_attribute("textContent")
            names.append(title)
            state.append(1) # 代表获取成功
        except:
            names.append(site_names[i])
            state.append(0) # 代表获取失败
        
    return pd.DataFrame({'url':urls,'site_name':site_names,'title':names,'state':state})

到了这里,关于python利用selenium获取网页head中的title的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 利用Python和Selenium编程,实现定时自动检索特定网页,发现特定网页内容发生变化后,向管理员发送提醒邮件(一)

            要求爬取某单位网站,登录后台查看是否有新增“网友提问”,如果有新的提问,向特定邮箱发出提醒邮件。 首先查看该网站的robots.txt文件,发现不存在该文件,由于未禁止,可用爬取取相关信息。 查看是否有网友提问的操作流程如下。 1、登录网站后台管理页面

    2024年02月17日
    浏览(73)
  • python 面向对象利用selenium【获取某东商品信息】

    用python程序和谷歌selenium插件获取某东商品详细信息【商品名称、商品简介,超链接】 利用selenium自动化程序 中的css页面结构索取来获取详细数据 关于谷歌selenium的安装方法和使用方法 第一步检查自己谷歌浏览器的版本 1.1 找到设置:并鼠标点击进入 1.2进入设置选项后,下滑

    2024年01月16日
    浏览(47)
  • 利用selenium获取Chrome日志(Java版和Python版)

    1.方式一(推荐优先使用该方式) 2.方式二

    2024年02月17日
    浏览(61)
  • 一个月学通Python(三十四):使用Selenium模拟人工操作及获取网页内容

    结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 再推荐一下最近热更的:《大厂测试高频面试题详解》 该专栏对近年

    2024年02月13日
    浏览(61)
  • Python 自动获取大批量excel数据并填写到网页表单(pandas;selenium)

    自动获取大批量excel数据并填写到网页表单 部分网页获取下拉列表点击的方式有所差异 这个请根据网页源码自做选择 一定要学会使用IPDB调试工具 太好用了!!!! 可能需要pip update一下 看提示 很好解决 没有报错最好啦 Python真是太好用了 办公利器啊!!!!

    2024年02月12日
    浏览(50)
  • python通过selenium爬取网页信息,python获取浏览器请求内容,控制已经打开的浏览器

    背景:通过python中直接get或者urlopen打开一些有延迟加载数据的网页,会抓取不到部分信息。 1. 命令行打开chrome,并开启调试端口 (前提,找到chrome安装目录,找到chrome.exe所在路径,添加到环境变量中,例如我的是C:Program FilesGoogleChromeApplication) remote-debugging-port指定远程调试

    2024年02月16日
    浏览(81)
  • 利用Python和Selenium获取雪球网沪深上市公司日k线走势图

    本文介绍作者如何爬取雪球网(https://xueqiu.com/)沪深股市沪深一览中的上市公司日k线走势图并截图保存至本地~ 欢迎关注作者公众号,追踪更多更新更有价值的内容。 项目用于获取雪球网沪深股市沪深一览列表中(图1)上市公司的日K线图(图2)。 图1 沪深股市-沪深一览

    2024年04月10日
    浏览(45)
  • Python Selenium如何下载网页中的图片到本地?(Base64编码的图片下载)

    前言:                 在网页上,图片有时会以Base64编码的形式嵌入在HTML中,而不是作为单独的文件提供。这种方式的优点是可以减少HTTP请求的数量,因为图片数据直接包含在HTML中,不需要额外的请求来获取图片文件。这对于小图片或图标特别有用,因为这些图片的文

    2024年04月17日
    浏览(51)
  • 利用Selenium轻松实现网页截图功能

    引言 对于初涉 Python 编程的开发者来说,自动化工具的使用可以极大地提升工作效率。在众多Python库中, Selenium 是一个强大且易用的 Web 浏览器自动化工具,它不仅可以模拟用户行为进行页面交互,还能方便地实现网页截图功能。本文将一步步教大家如何借助Selenium和ChromeD

    2024年04月10日
    浏览(53)
  • 使用selenium获取网页源码

    安装好selenium和下载好WebDriver后即可测试。下面演示如何打开一个网址,并获取该网站的源码。 基本步骤如下: 1. 导入webdriver from seleniumimport webdriver 2. 创建浏览器操作对象 指定下载的webdriver文件路径,我有将该文件复制到了当前程序运行的路径下,所以直接指定该文件名,

    2023年04月08日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包