我要感谢用户Pythonista几个月前给我这个非常有用的代码解决了我的问题。然而,由于我缺乏对HTML和Beautiful汤库的了解,我仍然对代码的功能感到困惑。
我对于特定消息数据结构在这个程序中扮演什么角色感到困惑?
我还对代码如何保存各种帖子感到困惑? 以及如何检查帖子的用户?
import requests, pprint
from bs4 import BeautifulSoup as BS
url = "https://forums.spacebattles.com/threads/the-wizard-of-woah-and-the-impossible-methods-of-necromancy.337233/"
r = requests.get(url)
soup = BS(r.content, "html.parser")
#To find all posts from a specific user everything below this is for all posts
specific_messages = soup.findAll('li', {'data-author': 'The Wizard of Woah!'})
#To find every post from every user
posts = {}
message_container = soup.find('ol', {'id':'messageList'})
messages = message_container.findAll('li', recursive=0)
for message in messages:
author = message['data-author']
#or don't encode to utf-8 simply for printing in shell
content = message.find('div', {'class':'messageContent'}).text.strip().encode("utf-8")
if author in posts:
posts[author].append(content)
else:
posts[author] = [content]
pprint.pprint(posts)
答案 0 :(得分:1)
specific_messages = soup.findAll(' li',{' data-author':' The Woah!'})
所以基本上该行正在搜索所有
并且findall返回多行,因此您需要遍历它以便您可以获取每一行并将其附加到列表中。
那就是