Как получить выходные данные из функций title_op () и address_op () во фрейм данных - PullRequest
0 голосов
/ 04 апреля 2020

Как получить выходные данные из функций title_op () и address_op () в фрейм данных, как показано ниже

title Адрес Silk Court 16 Ivimey Street, Bethnal Green, London E2 6LR Westport Care Home 14/26 Westport Street, Lime House, Wapping, Лондон E1 0RA Aspen Court Care Home 17/21 Dod Street, Poplar, Лондон E14 7EG
et c et c

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

#grabspage and parses it through ready for picking apart
my_url = "https://www.carehome.co.uk/care_search_results.cfm/searchunitary/Tower-Hamlets"

driver = webdriver.Chrome(executable_path='C:/Users/lemonade/Documents/work/chromedriver')
driver.get(my_url)
page_s = soup(driver.page_source, features='html.parser')




def title_op(page):
    title_container = page_s.select("div.home-name>p>a[href]")
    for container in title_container:
           titles = container.text.strip()
           print(titles)

def address_op(page):
    address_container = page_s.select("div.home-name>p.grey")
    for address in address_container:
        addresses = address.text 
        print(addresses)


title_op(page_s)

address_op(page_s)

ВЫХОД

Silk Court
Westport Care Home
Aspen Court Care Home
Beaumont Court
Hawthorn Green Residential and Nursing Home
Coxley House
Toby Lodge
Hotel in the Park
34/35 Huddleston Close
Approach Lodge
16 Ivimey Street, Bethnal Green, London E2 6LR
14/26 Westport Street, Lime House, Wapping, London E1 0RA
17/21 Dod Street, Poplar, London E14 7EG
Beaumont Square, Stepney, London E1 4NA
82 Redmans Road, Stepney Green, London E1 3AG
28 Bow Road, Bow, London E3 4LN
141 White Horse Road, London E1 0NW
130 Sewardstone Road, Bethnal Green, London E2 9HN
Bethnal Green, London E2 9NR
2 Approach Road, London E2 9LY

1 Ответ

0 голосов
/ 04 апреля 2020

Предполагая, что вы получаете соответствующий ответ, затем соберите два списка и используйте zip, затем перенесите вызов DataFrame из pandas

import pandas as pd

# your code

page_s = soup(driver.page_source, features='html.parser')
titles = [i.text for i in page_s.select('.home-name [href]')]
addresses = [i.text for i in page_s.select('p.grey')]
df = pd.DataFrame(zip(titles, addresses), columns = ['title','address'])
print(df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...