【问题标题】:Webscraping selenium looop网页抓取硒循环
【发布时间】:2021-04-13 13:52:15
【问题描述】:

我仍在处理视图问题。我终于能够使用视图 window.scrollBy(..) 命令加载整个页面...

我现在面临的问题是我想从文本中过滤掉所有标题。我想筛选的文本使用以下命令显示:

[代码]

main = driver.find_element_by_id("mrt-node-quoteNewsStream-0-Stream")  

print(main.text)

效果很好,所有结果都显示出来了。在这些结果中,我现在想过滤,正如上面所有的头条新闻。这应该适用于以下代码:

articles = main.find_elements_by_tag_name("mrt-node-quoteNewsStream-0-Stream") # li
for mrt-node-quoteNewsStream-0-Stream in articles:
    header = article.find_element_by_class_name("M(0)")
    print(header.text)

不幸的是,它向我显示了以下语法错误消息:

文件“”,第 7 行
对于文章中的 mrt-node-quoteNewsStream-0-Stream:
^
SyntaxError: 无法分配给操作员

第 7 行是下面一行:

for mrt-node-quoteNewsStream-0-Stream in articles:

非常感谢任何帮助。谢谢

【问题讨论】:

  • M(0) 是一个动态类值。使用基于文本的 HTML 更新问题。
  • 感谢输入。但是程序在第 7 行没有问题吗,您提到的更改将在第 8 行。这有意义吗? (我是初学者……)

标签: selenium web-scraping


【解决方案1】:

这行代码返回一个元素的列表

articles = main.find_elements_by_tag_name("mrt-node-quoteNewsStream-0-Stream")

所以articlesWebElement列表,它们每个看起来像:

<selenium.webdriver.remote.webelement.WebElement (session="04a9fac269c3a9cb724cc72769aed4e0", element="1b8ee8d0-b26a-4c67-be10-615286a4d427")>

根据您的第二组代码试验,mrt-node-quoteNewsStream-0-Streamtag_name,您不得在元素中查找 tag_name

【讨论】:

  • 谢谢您的回答!正是我想返回一个包含所有标题的列表。如果我不需要查找 tag_name,我还需要查找什么?
  • @Bebbi 这听起来像X-Y problem。与其寻求解决问题的帮助,不如编辑您的问题并询问实际问题。你想做什么?随意根据您的新要求提出新问题吗? Stackoverflow 贡献者将很乐意为您提供帮助。
  • @Bebbi 如果我的answer满足了您的问题,请点击空心处acceptanswer我的 answer 旁边的复选标记位于 votedown 箭头下方,因此复选标记变为 绿色
  • 我正试图获得所有的头条新闻。我已经复制了healines所在的部分:所以文章应该列出我所有的标题,例如标题是“有史以来最重要的中国发明!”页面代码如下中国有史以来最重要的发明!
猜你喜欢
  • 2023-02-02
  • 2022-11-09
  • 1970-01-01
  • 1970-01-01
  • 2018-03-22
  • 2020-03-27
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多