python - 下标汤对象的
问题描述
我想从 zoopla.co.uk 上的房屋列表中提取卧室和浴室的数量。我已经下标了 h3 标签的文本。它给了我想要的东西,但是:
- 我应该尝试通过 div 来抓取文本吗?
- 它是 csv 中的实整数还是数字字符?
Python
my_url = 'https://www.zoopla.co.uk/for-sale/property/b23/?page_size=100&q=B23&radius=0&results_sort=newest_listings&search_source=refine'
house_listings = page_soup.findAll("div", {"class":"listing-results-right clearfix"})
listings = house_listings[3] # item 4 for prototyping
house_bedrooms = listings.h3.text[1]
print(house_bedrooms)
# 4
house_bathrooms = listings.h3.text[3]
print(house_bathrooms)
# 1
编辑@bigbounty
style = re.findall('(?<=bed ).*(?= for)', str(listings.h2.a.text))
distance = re.findall('\d+\.?\d*', str(listings.ul.li.text))
if style:
print(f"Type of House - {style}")
if distance:
print(f"Distance from Station - {distance}")
# Output:
# Type of House - ['detached house']
# Distance from Station - ['1.2']
对象的 html
<div class="listing-results-right clearfix">
<div class="agent_logo">
<img alt="Marketed by Yopa" class="lazy" data-src="https://st.zoocdn.com/zoopla_static_agent_logo_(654234).png"/>
<noscript><img alt="Marketed by Yopa" src="https://st.zoocdn.com/zoopla_static_agent_logo_(654234).png"/></noscript>
</div>
<a class="listing-results-price text-price" href="/for-sale/details/55889526">
£325,000
</a>
<h3 class="listing-results-attr">
<span class="num-icon num-beds" title="4 bedrooms"><span class="interface"></span>4</span> <span class="num-icon num-baths" title="1 bathroom"><span class="interface"></span>1</span> <span class="num-icon num-reception" title="2 reception rooms"><span class="interface"></span>2</span>
</h3>
<h2 class="listing-results-attr">
<a href="/for-sale/details/55889526" style="text-decoration:underline;">4 bed detached house for sale</a>
<span class="listing-results-just-added">Just added</span>
</h2>
<span><a class="listing-results-address" href="/for-sale/details/55889526">Maxted Road, Erdington, Birmingham B23</a></span>
<div class="listing-results-attr">
</div>
<p>
An immaculately presented family home that will highly impress all viewers. Features include a full length lounge, Separate Dining Room, stylish fitted kitchen, Ground Floor WC, four double bedrooms, stunning bathroom suite, detached Garage, carport, ...
</p>
<div class="nearby_stations_schools clearfix">
<ul>
<li class="clearfix">
<span class="interface nearby_stations_schools_national_rail_station" title="Erdington"></span>
<span class="nearby_stations_schools_name" title="Erdington">Erdington</span>
(1.2 miles)
</li>
<li class="clearfix">
<span class="interface nearby_stations_schools_national_rail_station" title="Chester Road"></span>
<span class="nearby_stations_schools_name" title="Chester Road">Chester Road</span>
(1.3 miles)
</li>
</ul>
<div style="clear:both;">
<small>Note: Distances are straight line measurements</small>
</div>
</div>
</div>
解决方案
import requests
from bs4 import BeautifulSoup
my_url = 'https://www.zoopla.co.uk/for-sale/property/b23/?page_size=100&q=B23&radius=0&results_sort=newest_listings&search_source=refine'
res = requests.get(my_url)
soup = BeautifulSoup(res.text, "html.parser")
lis = soup.find("ul", class_="listing-results clearfix js-gtm-list").find_all("li", class_="srp clearfix")
for li in lis:
print("https://www.zoopla.co.uk{}".format(li.find("a", class_="listing-results-price text-price")["href"]))
beds = li.find("span", class_="num-beds")
receps = li.find("span", class_="num-reception")
baths = li.find("span", class_="num-baths")
if beds:
print(f"Number of Beds - {beds.get_text(strip=True)}")
if receps:
print(f"Number of Reception - {receps.get_text(strip=True)}")
if baths:
print(f"Number of Baths - {baths.get_text(strip=True)}")
print("-"*25)
输出:
https://www.zoopla.co.uk/for-sale/details/55907272
Number of Beds - 1
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55904182
Number of Beds - 3
-------------------------
https://www.zoopla.co.uk/for-sale/details/55900453
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55889526
Number of Beds - 4
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55887661
Number of Beds - 3
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55886616
Number of Beds - 3
-------------------------
https://www.zoopla.co.uk/for-sale/details/55882047
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55865458
Number of Beds - 3
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55865457
Number of Beds - 3
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55865414
Number of Beds - 2
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55865302
Number of Beds - 3
Number of Reception - 3
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55852984
Number of Beds - 3
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55850696
Number of Beds - 3
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55845249
Number of Beds - 3
Number of Reception - 3
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55064067
Number of Beds - 4
Number of Reception - 2
Number of Baths - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/55812936
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55790928
Number of Beds - 3
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55788734
Number of Beds - 2
Number of Reception - 1
Number of Baths - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/55779396
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55771988
Number of Beds - 2
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55767996
Number of Beds - 3
Number of Reception - 3
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55763381
Number of Beds - 2
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55758093
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55755484
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55750535
Number of Beds - 3
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/51569378
Number of Beds - 3
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55722643
Number of Beds - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55716130
Number of Beds - 3
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55714653
Number of Beds - 2
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55713263
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55682695
Number of Beds - 4
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55673718
Number of Beds - 4
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55670304
Number of Beds - 4
Number of Reception - 3
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55660378
Number of Beds - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/55659472
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55645273
Number of Beds - 4
-------------------------
https://www.zoopla.co.uk/for-sale/details/55636480
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55627146
Number of Beds - 3
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55607862
Number of Beds - 3
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55597104
Number of Beds - 3
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/54223579
Number of Beds - 3
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55522317
Number of Beds - 3
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55480779
Number of Beds - 3
Number of Reception - 2
Number of Baths - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/55453635
Number of Beds - 3
Number of Reception - 1
Number of Baths - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/55453634
Number of Beds - 3
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55419103
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55418059
Number of Beds - 3
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/53202677
Number of Beds - 3
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55387036
Number of Beds - 3
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55358482
Number of Beds - 3
-------------------------
https://www.zoopla.co.uk/for-sale/details/55352507
Number of Beds - 3
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55331187
Number of Beds - 4
Number of Reception - 3
Number of Baths - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/55308436
Number of Beds - 1
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55307910
Number of Beds - 3
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55297074
Number of Beds - 3
Number of Reception - 1
Number of Baths - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/55248700
Number of Beds - 3
Number of Reception - 1
Number of Baths - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/55235358
Number of Beds - 2
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/50515317
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55149715
Number of Beds - 3
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/53392656
Number of Beds - 1
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55167652
Number of Beds - 1
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55166615
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55158568
Number of Beds - 3
-------------------------
https://www.zoopla.co.uk/for-sale/details/51795614
Number of Beds - 3
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/53622784
Number of Beds - 3
Number of Baths - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/55097614
Number of Beds - 2
Number of Reception - 2
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/55066083
Number of Beds - 3
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/54374337
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/54973550
Number of Beds - 3
Number of Reception - 2
Number of Baths - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/54937429
Number of Beds - 2
Number of Reception - 1
Number of Baths - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/54854357
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/54809703
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/54677354
Number of Beds - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/54640976
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/54626916
Number of Beds - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/54581499
Number of Beds - 1
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/48050331
Number of Beds - 2
Number of Reception - 1
Number of Baths - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/54447355
Number of Beds - 3
-------------------------
https://www.zoopla.co.uk/for-sale/details/54417038
Number of Beds - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/49837014
Number of Beds - 1
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/54246675
Number of Beds - 3
Number of Reception - 1
Number of Baths - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/54243533
Number of Beds - 2
Number of Reception - 1
Number of Baths - 1
-------------------------
https://www.zoopla.co.uk/for-sale/details/54179773
Number of Beds - 3
Number of Reception - 2
Number of Baths - 2
-------------------------
https://www.zoopla.co.uk/for-sale/details/54151517
Number of Beds - 6
Number of Reception - 1
Number of Baths - 6
-------------------------
推荐阅读
- php - PHP 调用时传递引用
- c# - 使用图形时出现未处理的异常
- laravel - laravel中表列的动态删除
- assembly - 为什么我的打印函数第二次调用后输出错误?(x86 组装)
- php - 在mysql中只返回一次随机行
- python - Python 3.5.2 打印功能不起作用
- javascript - 通过正则表达式从 url 中删除参数
- javascript - 包含“%d”的字符串被转换为“NaN”
- ruby-on-rails - git:临时存储当前文件 - 并返回它们
- javascript - 将 1 添加到两列的每一行中的每个单元格,直到到达空白单元格 - Google 电子表格