我正试图从一个充斥着随机愚蠢的html宝石的论坛网站上搜集,但我无法从中获取所需的一切。大多数内容都很好(当html不太难看时),但对于有问题的帖子,我只是从第一个标签中获取文本。你能帮我弄清楚如何从整个帖子中获取所有文本吗?谢谢!
帖子的HTML看起来像这样: 这全部包含在
的标签中<div class="PostMessageBody">Mike,</div>
<div> </div>
<div>
"lorem ipsum, lorem ipsum"
</div>
<div> </div>
<div>
"lorem ipsum, lorem ipsum"
</div>
</div>
大多数帖子都使用了标签,但每隔一段时间,这个宝石就会弹出。当它发生时,被BS刮掉的唯一部分是第一个div,而字符串“Mike”是唯一被刮掉的部分,但是我也需要刮掉“lorem ipsum”的内容。
我正在使用beautifulsoup并请求如下(这是一个循环,它正在读取内容并将行写入文件,所以我试图在这里提取相关的代码片段):
url = "http://www.domain.com/community/default.aspx?f=35&m=5555555&p=3"
r = requests.get(url)
soup = BeautifulSoup(r.text)
posts = soup.find_all('table', class_='PostBox')
if not posts:
break
for k in posts:
tds = k.find_all('td')
userField = tds[0].get_text()
temp1 = regex.split(userField)
userName = temp1[0]
joinDate, postCount = temp1[-1].split("Total Posts : ")
post = str(tds[3].find('div', class_='PostMessageBody'))
postMessage, postSig = tds[3].find('div', class_='PostMessageBody').get_text(), ""
postMessage = postMessage.encode('ascii','ignore')
postSig = postSig.encode('ascii','ignore')
writer.writerow([site, userName, joinDate, postCount, postMessage, postSig])
感谢您的帮助!