For循环不会在网络抓取中收集所有数据

我正在为项目进行此Web抓取,但它仅返回我要查找的值之一,而不是同时运行清单中的其他18个元素。它将返回有关一所房子的所有信息,但我希望有关其他18所房子的信息也存储在变量中。非常感谢。

'''

import requests
from bs4 import BeautifulSoup
from urllib.request import urlopen as uReq
my_url = "https://www.daft.ie/ireland/property-for-sale/"

#open connection and grab webpage
uClient = uReq(my_url)
#store html in a variable
page_html = uClient.read() 
#close web connection
uClient.close()

#parse html
soup = BeautifulSoup(page_html,"html.parser")
print(soup)
#grabs listings house information
listings = soup.findAll("div",{"class":"FeaturedCardPropertyInformation__detailsContainer"})

for container in listings:
    #extracting price
    price= container.div.div.strong.text
    #location
    name_container = container.div.find("a",{"class":"PropertyInformationCommonStyles__addressCopy- 
    -link"}).text
    #house type
    house = container.div.find("div",{"class":"QuickPropertyDetails__propertyType"}).text
    #number of bathrooms
    bath_num = container.div.find("div",{"class":"QuickPropertyDetails__iconCopy-- 
    WithBorder"}).text
    #number of bedrooms
    bed_num = container.div.find("div",{"class":"QuickPropertyDetails__iconCopy"}).text

'''

xiaomeng722 回答:For循环不会在网络抓取中收集所有数据

您可以在for循环之前简单地创建一个空白列表,并在每次迭代中附加所有变量,以将所有数据存储在一个列表中。

您的代码将如下所示:

data = []

for container in listings:
    # extracting price
    price = container.div.div.strong.text
    # location
    name_container = container.div.find("a",{"class": "PropertyInformationCommonStyles__addressCopy--link"}).text
    # house type
    house = container.div.find("div",{"class": "QuickPropertyDetails__propertyType"}).text
    # number of bathrooms
    bath_num = container.div.find("div",{"class": "QuickPropertyDetails__iconCopy--WithBorder"}).text
    # number of bedrooms
    bed_num = container.div.find("div",{"class": "QuickPropertyDetails__iconCopy"}).text

    data.append((price,name_container,house,bath_num,bed_num))

print(data)

您的最终输出将如下所示:

[('€1,350,000','The Penthouse at Hanover Quay,27 Hanover Dock,Grand Canal Dock,Dublin 2','Apartment for sale','2','3'),('€450,'9 Na Ceithre Gaoithe Ring,Dungarvan,Co. Waterford',' Detached House','4','5'),('€390,'Cave,Caherlistrane,Co. Galway',('€720,'18 Hazelbrook Road,Terenure,Dublin 6','3','4'),('€210,'Carraig Abhainn,Ballisodare,Co. Sligo','Bungalow for sale','1',('€495,'Campbell Court,Cairns Hill,Sligo,('€125,'33 Leim An Bhradain,Gort Road,Ennis,Co. Clare','2'),('€395,'1 Windermere Court,Bishopstown,Co. Cork',' End of Terrace House',('€349,'59 Dun Eoin,Ballinrea Road,Carrigaline,('€515,'2 Elm Walk,Classes Lake,Ovens,'5',('€490,'9 Munster st.,Phibsborough,Dublin 7',' Terraced House',('€249,950','47 Westfields,Clare Road,('€435,'3 Castlelough Avenue,Loreto Road,Killarney,Co. Kerry',('€620,'Beaufort House,Knockacleva,Philipstown,Dunleer,Co. Louth',('€550,"Flat 5,Saint Ann's Apartments,Donnybrook,Dublin 4",('€675,'3 Church Hill,Innishannon,'River Lodge,The Rower,Inistioge,Co. Kilkenny',('€325,'Coolgarrane House,Coolgarrane,Thurles,Co. Tipperary',('€399,'No 14 Coopers Grange Old Quarter,Ballincollig,' Semi-Detached House','4')]
本文链接:https://www.f2er.com/3117579.html

大家都在问