如何从下面的<span class="arabic_sanad arabic">
&;<span class="arabic_text_details arabic">
中提取文本
<div class="arabic_hadith_full arabic"><span class="arabic_sanad arabic">حَدَّثَنَا أَبُو الْيَمَانِ، قَالَ أَخْبَرَنَا شُعَيْبٌ، قَالَ حَدَّثَنَا أَبُو الزِّنَادِ، عَنِ الأَعْرَجِ، عَنْ أَبِي هُرَيْرَةَ ـ رضى الله عنه ـ أَنَّ رَسُولَ اللَّهِ صلى الله عليه وسلم قَالَ </span>
<span class="arabic_text_details arabic">" فَوَالَّذِي نَفْسِي بِيَدِهِ لاَ يُؤْمِنُ أَحَدُكُمْ حَتَّى أَكُونَ أَحَبَّ إِلَيْهِ مِنْ وَالِدِهِ وَوَلَدِهِ "</span><span class="arabic_sanad arabic">.</span></div>
我试过以下方法,但由于以下错误,我失败了
^{pr2}$代码:
url = "http://www.sunnah.com/bukhari/8"
parser = etree.HTMLParser()
html = etree.parse(url, parser)
result = etree.tostring(html.getroot(), pretty_print=True, method="html")
soup = BeautifulSoup(result)
results = soup.findAll("div", {"class" : "actualHadithContainer"})
for result in results :
ar = result.find("div", {"class" : "arabic_hadith_full arabic"})
name2 = ar.get_text()
print name2
在打印之前,请尝试将字符串转换为unicode:
您必须按照前面的指示将字符串转换为unicode。在
为了防止这个错误,您必须检查
^{pr2}$ar
是否有get_text
方法。 在旧代码中,第一个节点有文本, 你的错误是因为错误的编码。 当你修复程序时,for循环继续,你得到一个没有文本的节点, 因此,get_text
方法此时不存在。 这样的方法应该有效:相关问题 更多 >
编程相关推荐