BeautifulSoup get_text()不返回所有文本

时间:2014-11-25 00:28:11

标签: beautifulsoup python-requests

我正试图从一个充斥着随机愚蠢的html宝石的论坛网站上搜集,但我无法从中获取所需的一切。大多数内容都很好(当html不太难看时),但对于有问题的帖子,我只是从第一个标签中获取文本。你能帮我弄清楚如何从整个帖子中获取所有文本吗?谢谢!

帖子的HTML看起来像这样: 这全部包含在

的标签中
<div class="PostMessageBody">Mike,</div>
    <div>&nbsp;</div>
    <div>
    "lorem ipsum, lorem ipsum"
    </div>
    <div>&nbsp;</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])

感谢您的帮助!

0 个答案:

没有答案