从 gitter 解析讨论
Parsing discussion from gitter
我想从gitter上复制一些讨论。例如。这个2015/08/19 archive。问题是简单的 ctrl+a 和 ctrl+c 不会复制用户名和日期。这些信息包含在页面的源代码中。最简单的方法是什么?我更喜欢 python 中的最小工作示例(几乎没有代码解释)。格式可以是例如:
(DATE) USERNAME: MESSAGE
非常感谢
这在使用 requests
库和 beautifulsoup4
时非常简单(都可以使用相同的名称安装 PIP)。
gitter.py
import requests
from bs4 import BeautifulSoup
markup_str = requests.get("https://gitter.im/numenta/public/archives/2015/08/19").content
soup = BeautifulSoup(markup_str, 'html.parser')
chat_container = soup.find(id='chat-container')
chat_items = chat_container.find_all(class_='chat-item')
for chat_item in chat_items:
msg = chat_item.find(class_='chat-item__text').get_text().strip()
poster = chat_item.find(class_='chat-item__from').get_text().strip()
posted_at = chat_item.find(class_='chat-item__time').get_text().strip()
print "({}) {}: {}".format(posted_at, poster, msg)
当运行时输出:
(Aug 19 00:09) rhyolight: I just released NuPIC 0.2.7
(Aug 19 00:09) rhyolight: waiting on the build to publish binaries
(Aug 19 00:09) rhyolight: https://github.com/numenta/nupic/releases/tag/0.2.7
(Aug 19 01:48) rhyolight: https://travis-ci.org/numenta/nupic/builds/76213223
[...snip...]
我们基本上只是迭代 #chat-container
父级中 chat-item
的 class 的所有元素。对于他们每个人,我们阅读 chat-item__text
、chat-item__from
和 chat-item__time
。
我想从gitter上复制一些讨论。例如。这个2015/08/19 archive。问题是简单的 ctrl+a 和 ctrl+c 不会复制用户名和日期。这些信息包含在页面的源代码中。最简单的方法是什么?我更喜欢 python 中的最小工作示例(几乎没有代码解释)。格式可以是例如:
(DATE) USERNAME: MESSAGE
非常感谢
这在使用 requests
库和 beautifulsoup4
时非常简单(都可以使用相同的名称安装 PIP)。
gitter.py
import requests
from bs4 import BeautifulSoup
markup_str = requests.get("https://gitter.im/numenta/public/archives/2015/08/19").content
soup = BeautifulSoup(markup_str, 'html.parser')
chat_container = soup.find(id='chat-container')
chat_items = chat_container.find_all(class_='chat-item')
for chat_item in chat_items:
msg = chat_item.find(class_='chat-item__text').get_text().strip()
poster = chat_item.find(class_='chat-item__from').get_text().strip()
posted_at = chat_item.find(class_='chat-item__time').get_text().strip()
print "({}) {}: {}".format(posted_at, poster, msg)
当运行时输出:
(Aug 19 00:09) rhyolight: I just released NuPIC 0.2.7
(Aug 19 00:09) rhyolight: waiting on the build to publish binaries
(Aug 19 00:09) rhyolight: https://github.com/numenta/nupic/releases/tag/0.2.7
(Aug 19 01:48) rhyolight: https://travis-ci.org/numenta/nupic/builds/76213223
[...snip...]
我们基本上只是迭代 #chat-container
父级中 chat-item
的 class 的所有元素。对于他们每个人,我们阅读 chat-item__text
、chat-item__from
和 chat-item__time
。