Python - 将两个 for 循环连接到数组中

Python - Concatenate two for loops into array

我是 python 的新手,正在快速学习,试图结合多个教程中的知识来解决我的问题。

本质上,我希望抓取以下网站以将所有属性及其相应的页面链接提取到一个数组中。

网站:“https://www.accommodationforstudents.com/search-results?location=London&area=&beds=0&searchType=halls&price=undefined&limit=99

问题是,当我 运行 代码时,它会正确地遍历每个 属性 的链接,但 属性 的名称不会。如有任何帮助,我将不胜感激。

此致

........

import urllib.request
import requests
from bs4 import BeautifulSoup

url = "https://www.accommodationforstudents.com/search-results?location=London&area=&beds=0&searchType=halls&price=undefined&limit=99"

response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

page = soup.findAll('a', attrs={'class': "student-halls-card__link"})
property = soup.findAll('strong', attrs={'class': "student-halls-card__title"})

sites = []


for link in page:
    link.find('href', attrs={'class': "student-halls-card__link"})

    for name in property:
        name.find('href', attrs={'class': 'student-halls-card__title'})

    sites.append(name.text + " - " + "https://www.accommodationforstudents.com" + link.get('href'))

print(sites)

..............

结果缩短了.. 'Felda House - https://www.accommodationforstudents.com/student-hall/407', 'Felda House - https://www.accommodationforstudents.com/student-hall/1672', 'Felda House - https://www.accommodationforstudents.com/student-hall/3260', ,................]

试试这个。

for link, name in zip(page, property):