youtube使用python实时聊天抓取

时间:2017-03-01 17:00:41

标签: python selenium youtube

我想在youtube实时聊天中发送剪贴簿聊天消息。 起初,我只是按照“https://www.youtube.com/watch?v=W2DS6wT6_48”中的方式进行了

但代码不起作用。

错误消息是

  

all_comments = driver.find_element_by_id(“all-comments”)

     

...

     

selenium.common.exceptions.NoSuchElementException:消息:{“errorMessage”:“无法找到带有'all-comments'的元素”,“request”:{“headers”:{“Accept”:“application / json “ ”接受编码“: ”同一性“, ”连接“: ”关闭“, ”内容长度“: ”93“, ”内容类型“: ”应用/ JSON;字符集= UTF-8“,” 主机“:” 127.0.0.1:12695"   “User-Agent”:“Python-urllib / 2.7”},“httpVersion”:“1.1”,“method”:“POST”,“post”:“{\”using \“:\”id \“,\ “sessionId \”:\“e4b63b00-fe9c-11e6-a630-0fa086b5cd8d \”,\“value \”:\“all-comments \”}“,”url“:”/ element“,”urlParsed“:{”锚 “:””, “查询”: “”, “文件”: “元件”, “目录”: “/”, “路径”: “/元件”, “相对的”: “/元件”, “端口” : “”,   “宿主”: “”, “密码”: “”, “用户”: “”, “用户信息”: “”, “权威”: “”, “协议”: “”, “源”: “/元素” “queryKey”:{}, “块”:[ “元件”]} “urlOriginal”: “/会话/ e4b63b00-fe9c-11E6-a630-0fa086b5cd8d /元件”}}

据我所知,没有任何元素名称是“所有评论” 因此,find_element_by_id失败了。

然后,我尝试了一些id或xpath来捕捉聊天消息

enter image description here

但没有什么可以得到聊天消息。

有什么我做错的方式吗?

我如何废弃聊天消息?

2 个答案:

答案 0 :(得分:0)

您永远无法访问iframe的内容。这是设计的。 iframe就像浏览器中的浏览器一样。

https://en.wikipedia.org/wiki/Same-origin_policy

你必须从iframe读出src attribut,加载此页面然后过滤它。这将有效

答案 1 :(得分:0)

我知道这个帖子有点陈旧,但我能够使用casperjs刮掉youtube在线聊天。这是一项正在进行的工作,但你可以在这里获得要点

https://github.com/archae0pteryx/yt-live-chat-scraper