我想复制一些来自gitter的讨论。例如。这一个2015/08/19 archive。问题是简单的ctrl + a和ctrl + c不会复制用户名和日期。这些信息包含在页面的源代码中。这样做最简单的方法是什么?我更喜欢python中的最小工作示例(对代码的解释很少)。格式可以是例如:
(DATE) USERNAME: MESSAGE
非常感谢
答案 0 :(得分:1)
使用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-item
父级中使用#chat-container
类迭代所有元素。对于每个人,我们都会看到chat-item__text
,chat-item__from
和chat-item__time
。