Назначение этого кода:
- Очистка 300 таблиц с помощью Pandas и Beautiful Soup
- Объединение этих таблиц в один фрейм данных Код отлично работает для первого шага,Но он не работает во втором.
Вот код:
import pandas as pd
from urllib.request import urlopen, Request
from bs4 import BeautifulSoup
header = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 " "Safari/537.36", "X-Requested-With": "XMLHttpRequest"}
url = open(r"C:\Users\Sayed\Desktop\script\links.txt").readlines()
for site in url:
req = Request(site, headers=header)
page = urlopen(req)
soup = BeautifulSoup(page, 'lxml')
table = soup.find('table')
df = pd.read_html(str(table), parse_dates={'DateTime': ['Release Date', 'Time']}, index_col=[0])[0]
df = pd.concat(df, axis=1, join='outer').sort_index(ascending=False)
print(df)
Вот ошибка:
Traceback (последний вызов последний):
Файл "D: /Projects/Tutorial/try.py", строка 18, в
df = pd.concat(df, axis=1, join='outer').sort_index(ascending=False)
Файл "C: \ Users \ Sayed \ Anaconda3 \ lib \ site-packages"\ pandas \ core \ reshape \ concat.py ", строка 225, в concat copy = copy, sort = sort)
Файл" C: \ Users \ Sayed \ Anaconda3 \ lib \ site-packages \ pandas \ "core \ reshape \ concat.py ", строка 241, в init
'"{name}"'.format(name=type(objs).__name__))
TypeError: первый аргумент должен быть повторяемым из объектов pandas, вы передали объект типа" DataFrame