Анализ дампа Википедии (xml) и сведение данных в таблицу
Добрый день!
Надо собрать публично-доступную историю правок нескольких статей из Википедии, с одного из последних дамп'ов - файл XML размером около 7Gb (упакованный) и 350Gb распакованный (т.е. парсить напрямую с сайта не надо!). Код должен быть написан на Python'e. Более подробно:
(1) На этой странице есть таблица: https://en.wikipedia.org/wiki/List_of_S%26P_500_companies. Во второй колонке (Security) собраны ссылки на Вики страницы 500 индивидуальных компаний. Похожая таблица есть и по этой ссылке: https://en.wikipedia.org/wiki/List_of_S%26P_400_companies. Там будут ссылки на еще 400 компаний на Вики. Код должен "просмотреть" обе страницы и создать текстовый файл "pageList.csv" в котором будут 2 колонки: тикеры компаний и список прямых ссылок на вот те самые 500+400=900 компаний (с запятой между колонками). Например, первая строка должна быть:
3M, https://en.wikipedia.org/wiki/3M
Для некоторых компаний, ссылок на страницу в таблице нет (например: Pool Corporation в S&P500). Их будет можно проигнорировать на след шаге. Но в этой первой таблице они должны остаться.
(2) Теперь главная часть (делается для каждой из 900 страниц, в цикле). Мне надо,чтобы это был именно отдельный код (а не часть предыдущего), который сможет работать и с другими списками страниц (если я захочу вручную изменить pageList.csv когда-то).
А. На Вики есть возможность просмотреть edits (правки) нажав на View History. Вся история правок находится в дамп'ах тоже. Вот пример на самом сайте Вики:
https://en.wikipedia.org/w/index.php?title=3M&action=history
По умолчанию на сайте их показывается 50, но их намного больше (можно внизу переключить на 500; в самом дамп'е их может быть больше. Кстати, страница не ломается, если в запросе просто указать очень большое число, например 100000).
https://en.wikipedia.org/w/index.php?title=3M&offset=&limit=100000&action=history
Обычно, правок от нескольких сотен до десяти тысяч. Online Вики удобно использовать, чтобы вручную сверяться, что вытягиваете правильную информацию из дампа. Нажав на странице "prev" (слева) вы как раз увидите как выглядит инкрементальная правка предыдущей версии.
Все правки индексируются "глобально" (а не постранично). Пример последней правки на странице 3М:
https://en.wikipedia.org/w/index.php?title=3M&diff=1080138119&oldid=1080137819
Хотя "номера" правок не по порядку, это тем не менее N и (N-1) версии именно для этой страницы. Вообще, последнее число можно заменить на 'prev'. Таким образом, сама 'правка' полностью определяется одним числом: 1080138119. Например, эта ссылка ведет на точно ту же страницу:
https://en.wikipedia.org/w/index.php?title=3M&diff=1080138119&oldid=prev
Б. На странице history каждая правка (строка) содержит несколько "полей/переменных": номер правки, дата/время правки, имя правщика/IP, и тд. Если правщик меняет страницу анонимно, то вместо имени - его АйПи. Мне надо, чтобы код создал файл с именем 'тикер'.csv (для первой строки это будет 3М.cvs) и в него записал историю правок со всеми переменными (через запятую), которые в ней есть.
В. Отдельным файлом также надо скачать с той же страницы с историей правок 'Pageviews' (вверху ссылка на странице). Для этого надо перейти по ссылке и попасть сюда:
На странице надо изменить даты на 'all time' и убедиться, что данные дневные а не месячные. Потом нажать на Download и выбрать CSV file. После скачивания, файл должен быть назван pageviews`тикер'.csv.
Taким образом, каждая строка из pageList.csv должна на выходе дать 2 файла: один со всеми правками (большой файл) и один со статистикой просмотров (маленький).
Я постарался четко описать, что нужно делать. Пожалуйста, внимательно прочитайте и укажите полную сумму, за которую вы согласны это сделать. Если у вас нет обыта подобной работы-- пожалуйста, не делайте ставку. Кроме этого проекта будет еще несколько заданий, которые будут оговариваться и оплачиваться отдельно. Не хочу слишком много засовывать в этот проект.
-
Доброго вечора, чи є певний дедлайн для цього проекту?
-
Актуальные фриланс-проекты в категории Python
Создание Тик-ток фермы с генерацией дохода
27 000 UAH
в поиске человека, который может написать софт, для фермы тик ток, чтобы мы смогли генерировать трафик, получать доход. Ищем готовое решение с полным циклом. Python, Разработка ботов ∙ 2 дня назад ∙ 16 ставок |
AI Commenting Platform для TikTok и Instagram.Цель проекта Разработать систему, которая позволяет управлять большим количеством аккаунтов TikTok и Instagram и автоматически публиковать релевантные комментарии под выбранными видео с использованием ИИ. Основной функционал1. Управление аккаунтами Необходимо реализовать… AI и машинное обучение, Python ∙ 3 дня 8 часов назад ∙ 22 ставки |
Построить модель классификации клиентов1. Есть данные клиентов в Mongo/SQL (примерно 20 000 записей с сырыми данными). 2. Необходимо на их основе построить фичи и модель классификации клиентов на поведенческие группы. 3. Проект выполнить на Python. AI и машинное обучение, Python ∙ 5 дней 2 часа назад ∙ 45 ставок |
ИТ Автоматизация ведения VAT-отчетности
10 000 UAH
Необходимо разработать систему для автоматизации переноса данных о продажах из CRM в бухгалтерскую систему Wafeq. Система должна импортировать банковские и платежные отчеты, автоматически сверять платежи с инвойсами, формировать инвойсы для VAT-отчетности и минимизировать ручную… AI и машинное обучение, Python ∙ 5 дней 7 часов назад ∙ 51 ставка |
Инструмент сверки счетов с банком, картами и бухгалтеромТехническое задание: инструмент сверки счетов с банком, картами и бухгалтеромОбщая цель Нужен локальный инструмент (скрипт/небольшое приложение на Python), который запускается вручную раз в 1-2 месяца на моём компьютере и делает сверку между: Счетами, которые я выставил клиентам… Python, Десктопные приложения ∙ 5 дней 20 часов назад ∙ 43 ставки |