#python #pandas #web-scraping
#python #pandas #очистка веб-страниц
Вопрос:
У меня есть таблица, которая охватывает много страниц. Я могу извлечь информацию с указанной страницы и перенести ее в таблицу CSV. Теперь моя цель — выполнить итерацию по всем страницам и добавить ее в нижнюю часть информации предыдущей страницы. Вот код, который пока работает на одной странице:
import requests
import pandas as pd
url = 'https://www.mineralanswers.com/oklahoma/producers?page=1'
html = requests.get(url).content
df_list = pd.read_html(html)
df = df_list[-1]
print(df)
df.to_csv('my data.csv')
URL-адрес страницы настраивается в «… производители? страница = 1, … производители? страница = 2 …формат producers?page = 3″поэтому я чувствую, что это, вероятно, возможно с помощью цикла, у меня просто возникают проблемы с изменением данных вместо их перезаписи.
Ответ №1:
Вот исправленный пример кода для извлечения 3 страниц и добавления их в один фрейм данных. Вы можете запустить этот код здесь онлайн.
import requests
import pandas as pd
df = pd.DataFrame()
for page in range(1, 4):
url = 'https://www.mineralanswers.com/oklahoma/producers?page=' str(page)
html = requests.get(url).content
df_list = pd.read_html(html)
df = df.append(df_list[-1], ignore_index = True)
df.to_csv('my data.csv')