diff --git a/crawler.ipynb b/crawler.ipynb index 23f37cf..a51da0d 100644 --- a/crawler.ipynb +++ b/crawler.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 61, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -16,7 +16,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -34,7 +34,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -42,23 +42,33 @@ " 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 if not text_elem.find(\"math\") else \"math image\"\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": 60, + "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": [ - "'107472'" + "'107478'" ] }, - "execution_count": 60, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -69,7 +79,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -87,10 +97,34 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 7, "metadata": {}, - "outputs": [], - "source": [] + "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", @@ -131,8 +165,7 @@ } ], "source": [ - "r = requests.get(URL_YELLOW)\n", - "soup = BeautifulSoup(r.text, 'lxml')\n", + "\n", "page_number = 1\n", "result_list = []\n", "max_len = \"\".join(re.findall(\"\\d\", re.sub(\"\\xa0\",'', soup.find(\"div\", {\"id\": \"mw-pages\"}).find(\"p\").text))[3:])\n", diff --git a/crawler.py b/crawler.py index 653225b..db01c5a 100644 --- a/crawler.py +++ b/crawler.py @@ -4,6 +4,7 @@ from bs4 import BeautifulSoup import re from tqdm import tqdm import time +import argparse def main(): MAIN_URL = "https://pl.wikisource.org/"