这是我的问题,所以我想存储来自 forum(messages + id)的数据,如果可以的话,我成功地仅剪贴了不是上一条消息的响应的消息帮帮我,这是我的代码
这是论坛的链接:
http://forum.doctissimo.fr/medicaments/Neuroleptiques/souhaite-arreter-vousdes-sujet_953_1.htm
作为上一条消息的响应的消息的示例(HTML)
<div itemprop="text">
<p></p>
<div class="container">
<div class="citation reducible-citation"><b class="s1"><a href="http://forum.doctissimo.fr/medicaments/Neuroleptiques/souhaite-arreter-vousdes-sujet_953_1.htm#t9835" class="Topic">aut49zm a écrit :</a></b>
<div class="forum-quote-content">tjs RAS</div>
<div class="expand-quote" style="display: none;">Afficher plus</div>
<div class="reduce-quote">Afficher moins</div>
</div>
</div>
<p><br><br><br>Ca fait 2 semaines aujourd'hui que je l'ai arrêté et RAS. Ca devrait être pareil pour toi <img title=":)" alt=":)" src="http://images.doctissimo.fr/generated/merged/flat/design/smilies/smile.gif" class="wysiwyg_smiley"> </p>
<div class="clear"></div>
<p></p>
</div>
正常消息的示例(HTML):
<div id="para9835" class="post_content">
<div itemprop="text">tjs RAS
<div class="clear"></div>
</div>
<div class="edited">
这是我的代码:
from bs4 import BeautifulSoup
import urllib.request
page=urllib.request.urlopen("http://forum.doctissimo.fr/medicaments/Neuroleptiques/souhaite-arreter-vousdes-sujet_953_1.htm")
strpage=page.read().decode(page.headers.get_content_charset())
soup=BeautifulSoup(strpage,'html.parser')
for e in soup.findAll('br'):
e.extract()
u=soup.prettify()
v=soup.findAll('div','post_content')
答案 0 :(得分:0)
我的法语不好(这是一个轻描淡写的问题……),因此从页面的设计方式来看,有时很难分辨出哪条消息是最高级别的,而哪条是响应,但是我认为应该获得此代码你在那里:
for e in soup.find_all('div',class_='post_content'):
for j in e:
if not e.find('div',class_='citation'):
print(j.text)
我真的很好奇这是否可行......
答案 1 :(得分:0)
好吧,我连续48小时发现了它(我是从网上抓取开始)。
from bs4 import BeautifulSoup
import urllib.request
page=urllib.request.urlopen("http://forum.doctissimo.fr/medicaments/Neuroleptiques /souhaite-arreter-vousdes-sujet_953_1.htm")
soupe = BeautifulSoup(page, 'lxml')
elem1 = soupe.find_all('div', attrs={'itemprop': 'text'})
#print(elem1)
for elem2 in elem1:
print("-"*50)
print(elem2.text)
print("-"*50)