![](/img/trans.png)
[英]python web scraping: onclick ajax request returns nothing with status 200
[英]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.