【发布时间】:2021-11-20 08:13:32
【问题描述】:
我正在学习公寓的网络抓取。一间公寓的 HTML 块如下所示:
输入
# Create a web search and save the results
base = 'https://www.booli.se/'
addition = 'kungsholmen,vasastan,gardet/115353,115349,115347'
url = base+addition
print(url)
notar = requests.get(url) # load the webpage content
page = notar.content # get the url content
soup = BeautifulSoup(page, 'lxml') # convert it to a beautiful soup object
links = soup.find_all('a', href=re.compile('/annons/'))
输出
<a class="elVgu" href="/annons/4387774" rel="noopener
noreferrer" target="_blank"><div class="_2x4yP _1Pdm1 nhG4K">
<div class="VvVg1"><picture><source sizes="(min-width: 460px)
959px, (min-width: 991px) 459px, 459px"
srcset="//bcdn.se/images/cache/27006816_796x0.webp 796w,
//bcdn.se/images/cache/27006816_360x0.webp 360w,
//bcdn.se/images/cache/27006816_270x0.webp 270w" type="image/webp"/><source sizes="(min-width: 460px) 959px, (min-width: 991px) 459px, 459px" srcset="//bcdn.se/images/cache/27006816_796x0.jpg 796w,
//bcdn.se/images/cache/27006816_270x0.jpg 360w,
//bcdn.se/images/cache/27006816_270x0.jpg 270w" type="image/jpeg"/><img alt="Öppnar information om bostaden i ny tab" class="TNXq2" loading="lazy" src="//bcdn.se/images/cache/27006816_270x0.jpg"/></picture>
<div class="_1Aa76"><p class="_1Csan">Balkong</p><p
class="_1Csan">Eldstad</p></div></div><div class="_1bIS9"><h3
class="_3R27q">Tomtebogatan 5B</h3></div><div class="_1bIS9">
<p class="_3HprD">4 895 000 kr</p></div><div class="_2ZDKS">
<div class="_2iD1Y"><div class="_1cru3 _2epd7"><div
class="_1jUwL _36W0F _2MiJJ">Värdering</div><div class="MsC3E _36W0F _2MiJJ">5 470 000 kr</div><hr class="_2DJbA _2F2SG"/></div></div></div><div class="_3IN5U"><strong><p>Vasastan -
Birkastan</p></strong><p>Lägenhet</p><p>2 rum</p><p>52 m²</p>
<p>931 kr/mån</p></div></div></a>
当我访问每个 HTML 块/每个公寓的文本时,文本就会出现,但它们都在一起,中间没有空格。每个公寓的单词都不同,短语的顺序也不同(特征在前,可能是 0-5 个特征,这使得排序方法无效),我希望能够保存名称、价格、特征等到一个表中。
输入
for nr_aps, row in enumerate(links):
row.str
info = row.text # show each apartment info
print(info)
print('')
输出
BalkongEldstadTomtebogatan 5B4 895 000 krVärdering5 470 000 krVasastan - BirkastanLägenhet2 rum52 m²931 kr/mån
您知道如何将每个部分保存到表格中吗?谢谢!
【问题讨论】:
标签: html web-scraping spacing