使用findall()的Beautifulsoup不返回任何内容

时间:2017-09-29 15:36:20

标签: python beautifulsoup

使用BeautifulSoup我想从以下代码中提取数据:

<div class="property-tag-container">
    <span class="c-prop-tag2">距离8号线市光路站284米</span>
    <span class="c-prop-tag2">满五</span>
    <span class="c-prop-tag2">有钥匙</span>
</div>

我使用的代码如下:

for i in range (1,3):
   if i == 1:
          i = str(i)
          a = (url + page + i + '/')
          r = requests.get(url=a, headers=headers)

          html = r.content
          print(type(html),html)
   else:
          i = str(i)
          a = (url + page + i + '/')
          r = requests.get(url=a, headers=headers)
          html2 = r.content
          html = html + html2

lj=BeautifulSoup(html,'html.parser')
subway=lj.find_all('div',attrs={'class':'property-tag-
container'},limit=None)
sb=[]
for c in subway:

   subway=c.string
   sb.append(subway)
print(len(sb),sb)

但是,列表sb中没有任何内容,因此输出如下:

  

60 [无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None ,None,None,None,None,None,None,None,None,None,None,None,None]

1 个答案:

答案 0 :(得分:1)

该类只有一个div,其string属性为None

试试这个:

for c in subway:
   subway=c.get_text()
   sb.append(subway)