簡體   English   中英

python web scraping .find()不返回任何內容

[英]python web scraping .find() returns nothing

我是python的新手,正在關注一些視頻教程,以從列表站點進行一些數據抓取。

HTML:

<div class="listing-info">
  <h3>
    <a href="/property-listing/english-townhouse-residence" itemprop="url" title = "For Sale English Townhouse"><span itemprop="name">English Townhouse</span>
    </a>
  </h3>
  <ul class="listing-features">
    <li class="lst-details">
      <span class="lst-ptype">Semi-Detached House </span>
      <span class="lst-tenure">Freehold</span>
    </li>
  </ul>
</div>

在元素ul-列表功能下,我想將“半獨立式住宅”用作住宅類型,將“永久業權”用作住宅使用權。

我將上面的html解析為listing-info變量。

我的代碼試用:

listing-info.li.text

在這里我可以買到半獨立式住宅

了解列表中有兩個span類,因此我嘗試了以下具體方法:

listing-info.find('span',class_='1st-ptype')
listing-info.find('span',class_='1st-tenure')

兩者都返回空。
有人可以啟發我嗎?

先感謝您

您可以直接搜索住房類型:

import re
from bs4 import BeautifulSoup as soup
s = """
<div class="listing-info">
  <h3>
    <a href="/property-listing/english-townhouse-residence" itemprop="url" title = "For Sale English Townhouse"><span itemprop="name">English Townhouse</span>
     </a>
  </h3>
  <ul class="listing-features">
    <li class="lst-details">
      <span class="lst-ptype">Semi-Detached House </span>
      <span class="lst-tenure">Freehold</span>
    </li>
  </ul>
</div>
"""
s = soup(s, 'lxml')
housing_types = [i.text for i in s.find_all('span', {'class':re.compile('lst-ptype|lst-tenure')})]

輸出:

[u'Semi-Detached House ', u'Freehold']

您的問題是您誤讀了類名“ l st-ptype”,而鍵入了“ 1 st-ptype”。

@Ajax代碼的簡單修改:

import re
from bs4 import BeautifulSoup as soup
s = """
<div class="listing-info">
<h3>
<a href="/property-listing/english-townhouse-residence" itemprop="url" title = "For Sale English Townhouse"><span itemprop="name">English Townhouse</span>
</a>
</h3>
<ul class="listing-features">
<li class="lst-details">
   <span class="lst-ptype">Semi-Detached House </span>
   <span class="lst-tenure">Freehold</span>
 </li>
</ul>
</div>
"""
s = soup(s, 'lxml')
housing_types = [i.text for i in s.find_all('span', {'class':re.compile('lst-[a-z]*')})]
print(housing_types)
['Semi-Detached House ', 'Freehold']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM