У меня есть таблица, в которой есть строки, и каждая строка имеет 6 столбцов. Я прочитал значения в столбцах и добавил их в фрейм данных, но в столбце 1 и 6 есть ссылки, которые я также хочу добавить. Я признаю, что я новичок в Python. Мне нужна помощь.
Я уже пытался создать новый фрейм данных и сохранить ссылку в первом столбце, но строки в обоих фреймах не совпадают.
import urllib3
from bs4 import BeautifulSoup
import pandas as pd
import time
COLUMNS = ['Legal Name', 'Status', 'Size', 'Suburb or Town', 'State', 'ABN']
COLUMNS2 = ['Link1']
urls = []
for i in range(3):
quotepage = "https://www.acnc.gov.au/charity?items_per_page=60&"
quotepage = quotepage + "facet__select__field_beneficiaries=0&"
quotepage = quotepage + "facet__select__field_countries=0&"
quotepage = quotepage + "facet__select__acnc_search_api_sub_history=0&"
quotepage = quotepage + "facet__select__field_status=307&"
quotepage = quotepage + "page="+str(i)+"#search"
#print (quotepage)
urls.append(quotepage)
i=0
dataframes = []
dataframes2 = []
cy_data = []
cy_data2 = []
for url in urls:
i=i+1
print(i)
http = urllib3.PoolManager()
response = http.request('GET', url)
soup = BeautifulSoup(response.data, "html5lib")
pagetable = soup.find('table')
rows = soup.find("table").find_all('tr')
time.sleep(.5)
for row in rows:
cells = row.find_all("td")
cells = cells[0:6] # Select the correct columns
cy_data.append([cell.text.strip() for cell in cells])
links = pagetable.find_all("a")
for link in links:
if len(link["href"]) == 41:# href for charity
cy_data2.append(link["href"])
dataframes.append(pd.DataFrame(cy_data, columns=COLUMNS).drop(0, axis=0))
dataframes2.append(pd.DataFrame(cy_data2, columns=COLUMNS2).drop(0, axis=0))
#data = pd.concat([dataframes, dataframes2], axis=1)
data = pd.concat(dataframes)
data2 = pd.concat(dataframes2)
Я хочу добавить ссылки на фрейм данных, вот и все.