0

「ヒンディー語」、「英語」として出力したい。「ヒンディー語」は取得できますが、「英語」を出力するのに苦労しています

入力:

<td class="_480u">
<div class="clearfix">
<div><a data-hovercard="/ajax/hovercard/page.php?id=112969428713061" href="https://www.facebook.com/pages/Hindi/112969428713061">Hindi</a> and 
      <a data-hovercard="/ajax/hovercard/page.php?id=106059522759137" href="https://www.facebook.com/pages/English/106059522759137">English</a></div></div></td>

私が試したコード:

>>> details.find('a',{'class':''}).string
u'Hindi'

s = details.findAll('a',{'class':''})
s1 = len(s)
list2 = []
if s1 >= 1:
   for j in range(0,s1):
      lang = s[j].find('a',{'class':''}).string.strip()
      list2.append(lang)
Traceback (most recent call last):
  File "<pyshell#220>", line 9, in <module>
    lang = s[j].find('a',{'class':''}).string.strip()
AttributeError: 'NoneType' object has no attribute 'string'


>>> s
[<a data-hovercard="/ajax/hovercard/page.php?id=112969428713061" href="https://www.facebook.com/pages/Hindi/112969428713061">Hindi</a>, <a data-hovercard="/ajax/hovercard/page.php?id=106059522759137" href="https://www.facebook.com/pages/English/106059522759137">English</a>]
4

1 に答える 1

1

それが正確な HTML である場合、それは変更されません。これを使用できます。

from bs4 import BeautifulSoup

html = '<td class="_480u">\
<div class="clearfix">\
<div><a data-hovercard="/ajax/hovercard/page.php?id=112969428713061" href="https://www.facebook.com/pages/Hindi/112969428713061">Hindi</a> and \
      <a data-hovercard="/ajax/hovercard/page.php?id=106059522759137" href="https://www.facebook.com/pages/English/106059522759137">English</a></div></div></td>'

soup = BeautifulSoup(html)
print soup.find('a',{'class':''}).string
print soup.find('a',{'class':''}).nextSibling.nextSibling.string

出力:

Hindi
English

または、次のようにすることもできます (質問に投稿した HTML のみで作業している場合):

from bs4 import BeautifulSoup

html = '<td class="_480u">\
<div class="clearfix">\
<div><a data-hovercard="/ajax/hovercard/page.php?id=112969428713061" href="https://www.facebook.com/pages/Hindi/112969428713061">Hindi</a> and \
      <a data-hovercard="/ajax/hovercard/page.php?id=106059522759137" href="https://www.facebook.com/pages/English/106059522759137">English</a></div></div></td>'

soup = BeautifulSoup(html)
lang = soup.findAll('a', href = True)
for i in lang:
    print i.string

出力:

Hindi
English
于 2013-08-27T08:19:31.777 に答える