Публичный аккаунт WeChat: «Python Reading Finance»
Если у вас есть какие-либо вопросы или предложения, пожалуйста, оставьте сообщение в публичном аккаунте
говорить оPandas
изread.xxx
Ряд функций, первая реакция каждого будет думать о наиболее часто используемых.pd.read_csv()
иpd.read_excel()
, большинство людей, вероятно, не использовали егоpd.read_html()
эта функция. Хотя это занижено, это очень мощно для захватаТаблица табличных данных, это просто артефакт. Давайте представим это подробно.
Когда вы просматриваете веб-страницы, вы часто видите такие таблицы данных, как
Данные о кассовых сборах фильма
Данные мирового рейтинга университетов
финансовые данные
Если вы посмотрите на структуру HTML веб-страницы (браузер Chrome F12), вы обнаружите, что у них есть общая черта, не только таблицы, но иСтруктура таблицыОтображаемые табличные данные, общая структура веб-страницы выглядит следующим образом
<table class="..." id="...">
<thead>
<tr>
<th>...</th>
</tr>
</thead>
<tbody>
<tr>
<td>...</td>
</tr>
<tr>...</tr>
<tr>...</tr>
...
<tr>...</tr>
<tr>...</tr>
</tbody>
</table>
Для данных табличного типа с аналогичной структурой веб-страницыpd.read_html()
Это удобно, он может захватить все формы на веб-странице и использоватьDataFrame
Форма возвращается в виде списка. В частности, это процесс:
Позвольте мне сначала представитьread_html
некоторые из основных параметров
read_html
-
io
:str или файлоподобныйПолучение URL-адресов, файлов, строк. URL-адрес не принят
https
Попробуйте удалитьs
полз -
header
:int или похожий на список или NoneУказывает строку, в которой расположены заголовки столбцов.
-
attrs
: dict or None, optionalПередайте словарь, чтобы отфильтровать конкретную таблицу по ее атрибутам
-
parse_dates
:бульРазобрать дату
Далее давайте возьмем в качестве примера сканирование фонда Sina Finance, владеющего акциями. URL-адрес:http://vip.stock.finance.sina.com.cn/q/go.php/vComStockHold/kind/jjzc/index.phtml?p=1
В этой части 6 страниц. Нажмите на разные номера страниц, чтобы увидеть, что URL-адрес запроса в основномp
параметры меняются,p=n
представляет собой первыйn
страница, поэтомуfor
Вы можете просмотреть все URL-адреса. Поняв меняющиеся правила URL-адресов, вы можете с радостью сканировать данные и добавлять код.
import pandas as pd
df = pd.DataFrame()
for i in range(6):
url = 'http://vip.stock.finance.sina.com.cn/q/go.php/vComStockHold/kind/jjzc/index.phtml?p={page}'.format(page=i+1)
df = pd.concat([df,pd.read_html(url)[0]])
print("第{page}页完成~".format(page=i+1))
df.to_csv('./data.csv', encoding='utf-8', index=0)
Весь процесс не требует использования регулярных выражений илиxpath
В ожидании инструментов данные можно просмотреть всего за несколько строк кода. Разве это не супер непобедимо и удобно? Спешите и начать!
При сканировании некоторых небольших данных в будущем, если вы столкнетесь с такого родаТаблица типа таблицы, можно напрямую пожертвоватьread_html
Этот артефакт, другие еще обдумывают правила,xpath
Как писать, вы уже облазили данные, думать об этом очень удобно!
Отсканируйте код, чтобы подписаться на официальный аккаунт"Питон Чтение Финансов", получите галантерею в первый раз!