Я написал следующий код для использования регулярных выражений для запроса страниц и поиска строк, похожих на процентные ставки. Общий код работает; однако создает несколько пустых фреймов данных, и я не могу заставить код удалить пустые фреймы, чтобы очистить мой вывод. Я пытался использовать .dropna, .drop и .empty, чтобы попробовать и осуждают кадры данных, но вывод остается неизменным и продолжает печатать пустые кадры данных с информацией, которая у меня уже есть. Есть ли способ, который я не знаю, который мог бы избавиться от этих пустых кадров. Код и вывод ниже:
plcompetitors = ['https://www.lendingclub.com/loans/personal-loans',
'https://www.marcus.com/us/en/personal-loans',
'https://www.discover.com/personal-loans/']
#cycle through links in array until it finds APR rates/fixed or variable using regex
for link in plcompetitors:
cdate = datetime.date.today()
l = r.get(link)
l.encoding = 'utf-8'
data = l.text
soup = bs(data, 'html.parser')
paragraph = soup.find_all(text=re.compile('[0-9]%'))
for n in paragraph:
matches = []
matches.extend(re.findall('(?i)\d+(?:\.\d+)?%\s*(?:to|-)\s*\d+(?:\.\d+)?%', n.string))
sint = pd.Series(matches)
qdate = pd.Series([datetime.datetime.now()]*len(sint))
slink = pd.Series([link]*len(sint))
df = pd.concat([qdate,sint,slink],axis=1)
df.columns = ['Date','Interest Rate', 'URL']
print(df)
Выход:
...
0 ...
1 ...
[2 rows x 3 columns]
...
0 ...
[1 rows x 3 columns]
...
0 ...
1 ...
2 ...
3 ...
[4 rows x 3 columns]
Empty DataFrame
Columns: [Date, Interest Rate, URL]
Index: []
Empty DataFrame
Columns: [Date, Interest Rate, URL]
Index: []
Empty DataFrame
Columns: [Date, Interest Rate, URL]
Index: []
Empty DataFrame
Columns: [Date, Interest Rate, URL]
Index: []
...
0 ...
[1 rows x 3 columns]
Empty DataFrame
Columns: [Date, Interest Rate, URL]
Index: []
Empty DataFrame
Columns: [Date, Interest Rate, URL]
Index: []
Empty DataFrame
Columns: [Date, Interest Rate, URL]
Index: []
Empty DataFrame
Columns: [Date, Interest Rate, URL]
Index: []