Анализ дампа Википедии (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 файла: один со всеми правками (большой файл) и один со статистикой просмотров (маленький).
Я постарался четко описать, что нужно делать. Пожалуйста, внимательно прочитайте и укажите полную сумму, за которую вы согласны это сделать. Если у вас нет обыта подобной работы-- пожалуйста, не делайте ставку. Кроме этого проекта будет еще несколько заданий, которые будут оговариваться и оплачиваться отдельно. Не хочу слишком много засовывать в этот проект.
-
Доброго вечора, чи є певний дедлайн для цього проекту?
-
Aktualne zlecenia dla freelancerów w kategorii Parsowanie danych
Skonfigurować moduł "Automatyczne przetwarzanie cenników. v.9.5".Sklep na OcStore 2.3. zainstalowany moduł "Automatyczne przetwarzanie cenników. v.9.5". Wszystko jest skonfigurowane przez autora modułu, ale teraz są kwestie dotyczące ustawień, których nie mogę zrozumieć i pojąć logikę działania modułu. Na przykład problem z dwoma… Sklepy internetowe i e-commerce, Parsowanie danych ∙ 8 godzin 49 minut temu ∙ 17 ofert |
Cennik towarów części samochodowych od dostawców dla stron internetowych z częściami samochodowymi na bazie PromuSpecyfikacja techniczna Projekt Ustawienie zawartości i synchronizacji dwóch sklepów Prom.ua z dostawcami części samochodowych. Zadanie Wymagana jest realizacja załadunku i aktualizacji produktów od dostawców części samochodowych dla dwóch sklepów internetowych na… Parsowanie danych ∙ 20 godzin 37 minut temu ∙ 41 ofert |
Parsowanie bazy
168 PLN
Wymagania dotyczące kanałów:1. Język treści:Rosyjski lub ukraiński(dopasowana mieszana treść RU/UA)2. Liczba subskrybentów:Nie mniej niż 500 subskrybentów3. Aktywność:Ostatni post opublikowany nie później niż 32 godziny temu4. Komentarze:Na kanale muszą być otwarte komentarze… Bazy danych i SQL, Parsowanie danych ∙ 21 godzin 57 minut temu ∙ 28 ofert |
Należy opracować bota Telegram do monitorowania samochodów z aukcji w USA (Copart, IAAI)Należy stworzyć bota Telegram do automatycznego wyszukiwania i monitorowania samochodów "BUY IT NOW" na aukcjach w USA (Copart, IAAI). Bot powinien działać w trybie automatycznym i wysyłać powiadomienia o nowych samochodach, które odpowiadają zadanym filtrom.Podstawowa… Parsowanie danych, Tworzenie chatbota ∙ 1 dzień 23 godziny temu ∙ 92 oferty |
Parsowanie produktów, przygotowanie do importu na WPWydobyć pełny katalog tych stron: https://svit-mebliv.ua/ https://kompanit.com.ua/ru https://amia.com.ua/ https://mebliromax.com.ua/ https://pehotin.com.ua/catalog/ https://www.sokme.ua/ru/ Wszystkie produkty muszą być połączone w jedną wspólną tabelę do importu do WP. Każdy… Programowanie stron internetowych, Parsowanie danych ∙ 4 dni 15 godzin temu ∙ 60 ofert |