我正在网上抓取一个真实状态页面,并试图在excel表中获取名称,位置,价格等数据。这是获取该信息的代码:
soup = bs4.BeautifulSoup(driver.page_source,'lxml')
for price in soup.find_all('span',{"class":"ann-price"}):
price_list.append(price.text)
for name in soup.find_all('div',{"itemprop":"name"}):
name_list.append(name.text)
for meters in soup.find_all('div',{"class":"ann-box-info"}):
meters_list.append(meters.text)
for rooms in soup.find_all('div',{"class":"ann-box-info"}):
bedrooms_list.append(rooms.text)
for location in soup.find_all('span',{"class":"ann-info-item"}):
location_list.append(location.text)
for realtor in soup.find_all('span',{"class":"company-name"}):
realtor_list.append(realtor.text)
问题:
大多数报价在div.ann-box-contact中的公司名称为span.company-name。问题是,每当特价商品出现而没有div.ann-box-contact(因此没有公司名称),而不是将其留空时,它就会输出下一个商品的名称,这会损害excel的格式。 li>
是否可以通过在div.ann-box-contact内查找span.company-name 来过滤那些报价?
以下是页面的代码,其中公司名称和联系人框为:
<div class="ann-box-contact">
<div class="info">
<span class="company-photo">
<span class="user-avatar"></span>
</span>
*<span class="company-name">*
<br>
星号中的元素是我想要获取的元素,但具体来说,请在div.ann-box-contact内部查找它,以便忽略没有公司名称的任何报价。
答案 0 :(得分:1)
您可以先找到<div class="ann-box-contact">
,然后在内部进行搜索以找到<span class="company-name">
的{{1}}
类似这样的东西:
beautifulsoup