{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import requests\n", "from bs4 import BeautifulSoup\n", "import re\n", "from tqdm import tqdm\n", "import time" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "MAIN_URL = \"https://pl.wikisource.org/\"\n", "URL_YELLOW = \"https://pl.wikisource.org/wiki/Kategoria:Skorygowana\"\n", "URL_GREEN = \"https://pl.wikisource.org/wiki/Kategoria:Uwierzytelniona\"" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def get_page_data(page_element):\n", " doc = requests.get(MAIN_URL + page_element['href'])\n", " doc_soup = BeautifulSoup(doc.text, 'lxml', from_encoding=\"utf-8\")\n", " text_elem = doc_soup.find(\"div\", {\"class\": \"pagetext\"}).next_element\n", " text = text_elem.text \n", " image_url = doc_soup.find(\"div\", {\"class\": \"prp-page-image\"}).next_element['src']\n", " return {\"title\": page_element['title'], \"href\": MAIN_URL + page_element['href'], \"image_url\": image_url, \"text\": text,}\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "r = requests.get(URL_YELLOW)\n", "soup = BeautifulSoup(r.text, 'lxml')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'107478'" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"\".join(re.findall(\"\\d\", re.sub(\"\\xa0\",'', soup.find(\"div\", {\"id\": \"mw-pages\"}).find(\"p\").text))[3:])" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "links = soup.find_all(\"a\", {\"href\": re.compile(r\"\\/wiki\\/Strona:.*\")})" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "next_page = soup.find(\"a\", {\"href\": re.compile(r\"\\/w\\/index.php.*\")}, string=\"następna strona\")" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\PC\\anaconda3\\envs\\um\\lib\\site-packages\\bs4\\__init__.py:226: UserWarning: You provided Unicode markup but also provided a value for from_encoding. Your from_encoding will be ignored.\n", " warnings.warn(\"You provided Unicode markup but also provided a value for from_encoding. Your from_encoding will be ignored.\")\n" ] }, { "data": { "text/plain": [ "{'title': 'Strona:A. Baranowski - O wzorach.pdf/7',\n", " 'href': 'https://pl.wikisource.org//wiki/Strona:A._Baranowski_-_O_wzorach.pdf/7',\n", " 'image_url': '//upload.wikimedia.org/wikipedia/commons/thumb/7/7e/A._Baranowski_-_O_wzorach.pdf/page7-1024px-A._Baranowski_-_O_wzorach.pdf.jpg',\n", " 'text': '\\u2009Potem napisałem teoryę luk, których Dr. Hossfeld nie podjął się sprawdzić.\\n\\u2009Nareszcie usunąwszy wszystkie liczby podzielne przez \\n\\n\\n\\n2\\n,\\n\\n\\n{\\\\displaystyle 2,}\\n\\n \\n\\n\\n\\n3\\n\\n\\n{\\\\displaystyle 3}\\n\\n i \\n\\n\\n\\n5\\n\\n\\n{\\\\displaystyle 5}\\n\\n, jako łatwe do poznania, zanalizowałem zakres numeracyi \\n\\n\\n\\n0\\n,\\n\\n\\n{\\\\displaystyle 0,}\\n\\n \\n\\n\\n\\n1\\n,\\n\\n\\n{\\\\displaystyle 1,}\\n\\n \\n\\n\\n\\n2\\n,\\n\\n\\n{\\\\displaystyle 2,}\\n\\n \\n\\n\\n\\n3\\n,\\n…\\n\\n\\n{\\\\displaystyle 3,\\\\ldots }\\n\\n \\n\\n\\n\\n150\\n\\n060\\n\\n\\n{\\\\displaystyle 150\\\\,060}\\n\\n, czyli liczby wszystkie pierwsze w tym zakresie, oraz podzielne przez \\n\\n\\n\\n7\\n,\\n\\n\\n{\\\\displaystyle 7,}\\n\\n \\n\\n\\n\\n11\\n,\\n\\n\\n{\\\\displaystyle 11,}\\n\\n \\n\\n\\n\\n13\\n,\\n\\n\\n{\\\\displaystyle 13,}\\n\\n \\n\\n\\n\\n17\\n,\\n…\\n,\\n\\n\\n{\\\\displaystyle 17,\\\\ldots ,}\\n\\n t. j. przez \\n\\n\\n\\n\\np\\n\\n4\\n\\n\\n,\\n\\n\\n{\\\\displaystyle p_{4},}\\n\\n \\n\\n\\n\\n\\np\\n\\n5\\n\\n\\n,\\n\\n\\n{\\\\displaystyle p_{5},}\\n\\n \\n\\n\\n\\n\\np\\n\\n6\\n\\n\\n,\\n\\n\\n{\\\\displaystyle p_{6},}\\n\\n \\n\\n\\n\\n\\np\\n\\n7\\n\\n\\n,\\n…\\n\\n\\n{\\\\displaystyle p_{7},\\\\ldots }\\n\\n Spisałem na ogół liczb \\n\\n\\n\\n40\\n\\n008\\n\\n\\n{\\\\displaystyle 40\\\\,008}\\n\\n, oznaczając je właściwemi czynnikami n. p. \\n\\n\\n\\n49\\n=\\n\\n7\\n\\n2\\n\\n\\n,\\n\\n\\n{\\\\displaystyle 49=7^{2},}\\n\\n \\n\\n\\n\\n77\\n=\\n7.11\\n;\\n\\n\\n{\\\\displaystyle 77=7.11;}\\n\\n \\n\\n\\n\\n91\\n=\\n7.13\\n,\\n\\n\\n{\\\\displaystyle 91=7.13,}\\n\\n \\n\\n\\n\\n1001\\n=\\n7.11.13\\n\\n\\n{\\\\displaystyle 1001=7.11.13}\\n\\n i t. d.\\n\\u2009Później z tego kajetu wypisałem osobno same tylko liczby pierwsze, to jest:\\n\\n\\n\\n\\n\\n\\np\\n\\n1\\n\\n\\n=\\n2\\n\\n\\n{\\\\displaystyle p_{1}=2}\\n\\n, \\n\\n\\n\\n\\np\\n\\n2\\n\\n\\n=\\n3\\n\\n\\n{\\\\displaystyle p_{2}=3}\\n\\n, \\n\\n\\n\\n\\np\\n\\n3\\n\\n\\n=\\n5\\n\\n\\n{\\\\displaystyle p_{3}=5}\\n\\n, \\n\\n\\n\\n\\np\\n\\n4\\n\\n\\n=\\n7\\n\\n\\n{\\\\displaystyle p_{4}=7}\\n\\n .... \\n\\n\\n\\n\\np\\n\\n13852\\n\\n\\n=\\n150\\n\\n053\\n\\n\\n{\\\\displaystyle p_{13852}=150\\\\,053}\\n\\n.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\u2009Gustaw Wertheim w dziele „Elemente der Zahlentheorie“ (Leipzig\\n1887) rozwija i przykładem objaśnia następujący wzór Meissel’a do obliczenia w danym zakresie numeracyi liczb pierwszych str. 24.\\n\\n\\n\\n\\n\\n\\nψ\\n\\n\\u2061\\n(\\nn\\n)\\n=\\n\\nφ\\n\\n\\u2061\\n(\\nn\\n,\\nm\\n)\\n+\\nm\\n(\\nμ\\n+\\n1\\n)\\n+\\n\\n\\n\\nμ\\n(\\nμ\\n−\\n1\\n)\\n\\n2\\n\\n\\n−\\n1\\n−\\n\\n∑\\n\\ns\\n=\\n1\\n\\n\\ns\\n=\\nμ\\n\\n\\n\\nψ\\n\\n\\u2061\\n\\n\\n(\\n\\n\\n\\n\\nn\\n\\n\\np\\n\\nm\\n+\\ns\\n\\n\\n\\n\\n\\n\\n\\n)\\n\\n\\n\\n\\n{\\\\displaystyle \\\\operatorname {\\\\psi } (n)=\\\\operatorname {\\\\varphi } (n,m)+m(\\\\mu +1)+{{\\\\mu (\\\\mu -1)} \\\\over 2}-1-\\\\sum _{s=1}^{s=\\\\mu }\\\\operatorname {\\\\psi } {\\\\biggl (}{n \\\\over {p_{m+s}}}{\\\\biggr )}}\\n\\n\\n\\n\\n\\n\\n\\nψ\\n\\n\\u2061\\n(\\nn\\n)\\n\\n\\n{\\\\displaystyle \\\\operatorname {\\\\psi } (n)}\\n\\n oznacza tutaj, ile się zawiera liczb bezwzględnie pierwszych w zakresie numeracyi od \\n\\n\\n\\n0\\n,\\n\\n\\n{\\\\displaystyle 0,}\\n\\n \\n\\n\\n\\n1\\n,\\n\\n\\n{\\\\displaystyle 1,}\\n\\n \\n\\n\\n\\n2\\n,\\n\\n\\n{\\\\displaystyle 2,}\\n\\n \\n\\n\\n\\n3\\n,\\n…\\n\\n\\n{\\\\displaystyle 3,\\\\ldots }\\n\\n \\n\\n\\n\\nn\\n.\\n\\n\\n{\\\\displaystyle n.}\\n\\n\\n\\u2009\\n\\n\\n\\nm\\n\\n\\n{\\\\displaystyle m}\\n\\n oznacza, ile liczb pierwszych znajduje się w sześciennym pierwiastku zakresu \\n\\n\\n\\nn\\n\\n\\n{\\\\displaystyle n}\\n\\n, czyli \\n\\n\\n\\nm\\n=\\n\\nφ\\n\\n\\u2061\\n\\n\\n(\\n\\n\\n\\n\\nn\\n\\n3\\n\\n\\n\\n\\n\\n)\\n\\n\\n\\n\\n{\\\\displaystyle m=\\\\operatorname {\\\\varphi } {\\\\Bigl (}{\\\\sqrt[{3}]{n}}{\\\\Bigr )}}\\n\\n.\\n\\u2009\\n\\n\\n\\nμ\\n\\n\\n{\\\\displaystyle \\\\mu }\\n\\n oznacza, ile liczb pierwszych znajduje się w pierwiastku kwadratowym \\n\\n\\n\\n\\n\\n2\\n\\n\\n\\n\\n{\\\\displaystyle {\\\\sqrt {2}}}\\n\\n , po odjęciu liczby tychże liczb, będących w pierwiastku sześciennym, czyli \\n\\n\\n\\nμ\\n=\\nψ\\n\\n\\nn\\n\\n\\n−\\nm\\n\\n\\n{\\\\displaystyle \\\\mu =\\\\psi {\\\\sqrt {n}}-m}\\n\\n.\\n\\n\\n\\n\\n\\nm\\n+\\nμ\\n=\\nψ\\n\\n\\n(\\n\\n\\n\\n\\nn\\n\\n\\n\\n\\n)\\n\\n\\n\\n\\n{\\\\displaystyle m+\\\\mu =\\\\psi {\\\\Bigl (}{\\\\sqrt {n}}{\\\\Bigr )}}\\n\\n.\\n\\u2009Wzór ten, dobry przy obliczaniu niewielkich zakresów numeracyi, kiedy \\n\\n\\n\\nn\\n\\n\\n{\\\\displaystyle n}\\n\\n nie przewyższa setek, tysięcy; znośny jeszcze i przy obliczaniu dziesiątek tysięcy; w wielkich zaś zakresach numeracyi, wymaga wiele miejsca, czasu i pracy. Można się o tem przekonać, obliczając choćby tylko\\n\\n\\n\\n\\n\\nn\\n=\\n100\\n\\n000\\n\\n\\n{\\\\displaystyle n=100\\\\,000}\\n\\n; \\n\\n\\n\\n\\n\\nn\\n\\n3\\n\\n\\n\\n=\\n46\\n\\n\\n{\\\\displaystyle {\\\\sqrt[{3}]{n}}=46}\\n\\n; \\n\\n\\n\\n\\nψ\\n\\n\\u2061\\n(\\n46\\n)\\n=\\n14\\n\\n\\n{\\\\displaystyle \\\\operatorname {\\\\psi } (46)=14}\\n\\n; \\n\\n\\n\\n\\n\\nn\\n\\n\\n=\\n316\\n\\n\\n{\\\\displaystyle {\\\\sqrt {n}}=316}\\n\\n; \\n\\n\\n\\n\\nψ\\n\\n\\u2061\\n(\\n316\\n)\\n=\\n65\\n\\n\\n{\\\\displaystyle \\\\operatorname {\\\\psi } (316)=65}\\n\\n;\\nponieważ zaś \\n\\n\\n\\nm\\n=\\n\\nψ\\n\\n\\u2061\\n(\\n\\n\\nn\\n\\n3\\n\\n\\n\\n)\\n=\\n\\nψ\\n\\n\\u2061\\n(\\n46\\n)\\n=\\n14\\n,\\n\\n\\n{\\\\displaystyle m=\\\\operatorname {\\\\psi } ({\\\\sqrt[{3}]{n}})=\\\\operatorname {\\\\psi } (46)=14,}\\n\\n\\n'}" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "get_page_data(links[0])" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ " 0%| | 0/200 [00:00