我有以下结果列表:
<div id="resultlist" class="result-list ">
<article itemscope="" itemtype="http://schema.org/Residence" class="search-result-entry ">
<article itemscope="" itemtype="http://schema.org/Residence" class="search-result-entry ">
<article class="search-result-entry" id="wh_adition_FakeAd1">
<article itemscope="" itemtype="http://schema.org/Residence" class="search-result-entry ">
...
使用 beautifulsoup,我尝试选择所有带有“search-result-entry”类和 itemtype="http://schema.org/Residence"的条目。
response = requests.get(url)
#cancel parsing if page doesnt exists
if response.status_code is not 200:
return
soup = bs4.BeautifulSoup(response.text, "lxml")
#print(soup.select("resultlist")
#select all listings from lise, execlude adds
results = soup.select('.search-result-entry')
print(results)
但是,目前我还选择了那些带有 id="wh_adition_FakeAd1"
的广告,这会在几行之后给我一个索引错误。
我试过了,没有任何结果:
results = soup.select('.search-result-entry meta[itemtype=http://schema.org/Residence]')
知道如何设法只选择我需要的条目吗?
最佳答案
你可以试试这个。查找具有所需元素类型的所有文章标签。这将只打印具有该属性的那些。
for line in soup.findAll("article", {"itemtype" : "http://schema.org/Residence"}):
print line
你可以对那些有 ID 的人做同样的事情
for line in soup.findAll("article", {"id" : "wh_adition_FakeAd1"}):
print line
希望这对您有所帮助。
关于html - 用 beautifulsoup 选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44524876/