weixin_48212283 2023-07-25 19:19 采纳率: 0%
浏览 6

selelnium获取网页指定区域的text输出空字符如何解决

代码如下:

如上述代码

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep
from selenium.webdriver import ChromeOptions
from lxml import etree

option = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
browser = webdriver.Chrome(options=option)
browser.get('http://szb.northnews.cn/nmgrb/html/2023-07/23/node_1.htm?v=1')
browser.find_element(By.XPATH, '//*[@id="keyword"]').send_keys('乡村振兴')
browser.find_element(By.XPATH, '//*[@id="Btsearch"]').click()
sleep(10)
import time

js = "$('input:eq(0)').removeAttr('readonly')"  # jQuery,移除属性
# js = "$('input:eq(0)').attr('readonly',false)"  # jQuery,设置为false
browser.get('http://fullsearch.cnepaper.com/FullSearch.aspx?key=%E4%B9%A1%E6%9D%91%E6%8C%AF%E5%85%B4&dbids=1093')
browser.execute_script(js)
browser.find_element(By.XPATH, '//*[@id="Txt_SiteStart"]').send_keys('2017-10-19')
browser.find_element(By.XPATH, '//*[@id="Txt_SiteEnd"]').send_keys('2022-12-31')
browser.find_element(By.XPATH, '//*[@id="header"]/div[2]/div[1]/button').click()
sleep(10)
labels = browser.find_elements(By.XPATH, '//*[@id="need"]/li[1]')
for i in range(len(labels)):
    labels[i].find_element(By.XPATH, '//*[@id="need"]/li[1]/span/a').click()
    sleep(10)
    text = browser.page_source
    html = etree.HTML(text)
    newsname = html.xpath('/html/body/table[1]/tbody/tr/td/table/tbody/tr[3]/td/table/tbody/tr/td[3]/table/tbody/tr[2]/td/div/table/tbody/tr[1]/td/table/tbody/tr[2]/td/founder-title/p/text()')
    newstime = html.xpath('//*[@id="banner_top_date"]/span/text()')
    newsinforlabel=html.xpath('//div[@class="content"]')
    newsinfor=newsinforlabel[0].xpath('string(.)')
    print(newstime)
    browser.back()
    sleep(5)

[点击并拖拽以移动]


如上述代码

newstime = html.xpath('//*[@id="banner_top_date"]/span/text()')
print(newstime)

输出空字符

我也尝试了

newstime = html.xpath('//*[@id="banner_top_date"]/span').text
print(newstime)

newstime = html.xpath('//*[@id="banner_top_date"]/span/').get_attribute(Content text)
print(newstime)等代码,

****但是还是无法输出text文本,请问该怎么修改代码

  • 写回答

1条回答 默认 最新

  • 全栈若城 全栈领域优质创作者 2023-07-25 20:08
    关注

    换一下 用 By.CLASS_NAME

    评论

报告相同问题?

问题事件

  • 创建了问题 7月25日

悬赏问题

  • ¥100 matlab2009 32位一直初始化
  • ¥15 Expected type 'str | PathLike[str]…… bytes' instead
  • ¥15 为什么在iis上部署网站,服务器可以访问,但是本地电脑访问不了
  • ¥15 三极管电路求解,已知电阻电压和三级关放大倍数
  • ¥15 ADS时域 连续相位观察方法
  • ¥15 Opencv配置出错
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像