List 我想将列表中的元素返回到数据框中,如下所示。我是初学者

List 我想将列表中的元素返回到数据框中,如下所示。我是初学者,list,for-loop,web-scraping,beautifulsoup,List,For Loop,Web Scraping,Beautifulsoup,我尝试了3种不同的方法: import numpy as np import pandas as pd from bs4 import BeautifulSoup as soup from selenium import webdriver driver = webdriver.Chrome(executable_path='C:/Users/lemonade/Documents/work/chromedriver') my_url = "https://www.carehome.co.uk

我尝试了3种不同的方法:

import numpy as np
import pandas as pd
from bs4 import BeautifulSoup as soup
from selenium import webdriver

driver = webdriver.Chrome(executable_path='C:/Users/lemonade/Documents/work/chromedriver')

my_url = "https://www.carehome.co.uk/"

def make_soup(url):
  driver.get(url)
  m_soup = soup(driver.page_source, features='html.parser')
  return m_soup 

main_page = make_soup(my_url)

boroughs = [borough.text.strip() for borough in main_page.select('.seo_links.seo_links_country [href]')]

indexs = list(range(16,19))

london_list = [boroughs[i] for i in indexs]

boroughs1 = [bo.replace("Borough","") for bo in london_list]
boroughs2 = [b1.replace("&","and") for b1 in boroughs1]
boroughs3 = ['-'.join(b2.split()) for b2 in boroughs2]

borough_links = ["https://www.carehome.co.uk/care_search_results.cfm/searchunitary/" + b3 for b3 in boroughs3]

borough_soup = [make_soup(b_link) for b_link in borough_links]


for soups in borough_soup:
   titles = [title.text.strip() for title in soups.select('.home-name [href]')]
   return(titles)

for soups in borough_soup:
   addresses = [address.text.strip() for address in soups.select('.home-name>p.grey')]
   return(addresses)


df = pd.DataFrame(zip(titles, addresses), columns = ['title','address'])
print(df)
我尝试了下面的代码:这给了| AttributeError:'list'对象没有属性'text'|

title_html = [soups.select('.home-name [href]') for soups in borough_soup]
titles = [title.text.strip() for title in title_html ]

addresses_html =[soups.select('.home-name>p.grey') for soups in borough_soup] 
addresses = [address.text.strip() for address in addresses_html]
我试图创建并附加一个列表,然后返回该列表。[见下文]这只是从列表中输出了一个元素

def func(borough_soup):
   for soups in borough_soup:
    titles = [title_html.text.strip() for title_html in soups.select('.home-name [href]')]
    for title in titles:
       titles1 = []
       titles1.append(title)
    return(titles1)

任何帮助都将不胜感激

这就是解决办法。使用空列表创建函数,然后将每个元素追加到列表中。在那之后,每个DF

def title(x):
 titles1 = []
 for soups in borough_soup:
   titles = [title.text.strip() for title in soups.select('.home-name [href]')]
   titles1.append(titles)
 return(titles1)

titles = title(borough_soup)

def address(x):
 address1 = []
 for soups in borough_soup:
   addresses = [address.text.strip() for address in soups.select('.home-name>p.grey')]
   address1.append(addresses)
 return(address1)

addresses = address(borough_soup)

indexs2 = list(range(0,2))


df_list = [pd.DataFrame(zip(titles[i], addresses[i])) for i in indexs2]

df = pd.concat(df_list)

这是蟒蛇吗?@usr2564301这句话真让人讨厌然而,这是一个严肃的问题。是的,这是python:)