TPB sex study : Différence entre versions
(→Bittorrent) |
(→Techniques et Outils) |
||
(19 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 3 : | Ligne 3 : | ||
Il se passe des choses intéréssentes sur Internet. Cet espace virtuel ou les humains dialoguent, échangent, partagent une multitude d'informations à propos d'un spectre de sujets tellement important qu'il y a un certains nombre de règles nommé "Règles d'internets" qui dictent notamment que Tout choses, dans le monde physique et le monde virtuel à un équivalent erotisé et/ou pornographique. | Il se passe des choses intéréssentes sur Internet. Cet espace virtuel ou les humains dialoguent, échangent, partagent une multitude d'informations à propos d'un spectre de sujets tellement important qu'il y a un certains nombre de règles nommé "Règles d'internets" qui dictent notamment que Tout choses, dans le monde physique et le monde virtuel à un équivalent erotisé et/ou pornographique. | ||
− | [ | + | [[Fichier:Tpb home.png|left|thumb|upright=1.35|frame|homepage de The Pirate Bay]] |
− | + | [https://wikiless.org/wiki/The_Pirate_Bay?lang=fr '''The Pirate Bay'''] est un site web ( et plusieurs sites proxy) permettant de partager via [ Bittorrent] des contenues, souvant illégaux, comme des films, des série télévisé, des logiciels, et même des livres numériques et des pdfs. Les sites est divisé en rubriques, par exemples les contenues les plus télécharger de tout les temps. | |
− | À travers le web scraping du top '''100'''de la section '''ebook''' dans '''The Pirate Bay''' et le recroisement de ces données dans la durée, je compte observer la place du thème de la sexualité, pour voir l'évolution au cours du temps des contenues les plus téléchargé dans le top 100 ainsi que les thématique plus précise proposé. | + | [[Fichier:Top ebook top view.png|thumb|upright=1.35|right|frame|top 100 ebooks, contenant plein de type de document différent, allant du scan pdf, au epub et autres publications numériques]] |
− | Les donnée sont récupérer directement du site via '''web scraping''' et sont encodé directement dans une base de donnée '''mariadb'''. Ensuite | + | |
+ | Or, dans la '''section top 100 ebook''', il semble y avoir un pourcentage des documents proposés soit systèmatiquement relatif au thématique du Sex et des relations sexuelles. Allant de contenue explicitement pornographique (''pdf de la revue Playboy'') à des livres de conseils de drague et même de plus en plus des livres qui pourraient être considéré comme politique (culture queer, féminisme). Ce qui m'a rendu curieux de voir si mon intuition était vérifiable. | ||
+ | |||
+ | [[Fichier:Top ebook sex stuff highlight.png|thumb|upright=1.35|right|frame]] | ||
+ | |||
+ | À travers le web scraping du top '''100''' de la section '''ebook''' dans '''The Pirate Bay''' et le recroisement de ces données dans la durée, je compte observer la place du thème de la sexualité, pour voir l'évolution au cours du temps des contenues les plus téléchargé dans le top 100 ainsi que les thématique plus précise proposé. | ||
+ | |||
+ | Les donnée sont récupérer directement du site via '''web scraping''' et sont encodé directement dans une base de donnée '''mariadb'''. Ensuite, plusieurs routine SQL vont généré des statistiques relative à chaque document, notamment en grâce à des mots-clés et les nombre de Seeder et Leecher. | ||
+ | |||
+ | La visualisation de ces données prend la forme de soit un flux RSS qui contiendrait un résumé des dernières donnée et des statistiques au cours du temps, soit une publication générative d'un epub contenant des information sous la forme d'un almanach, une sorte de revue. | ||
+ | |||
+ | Un projet future pourrait prendre en compte toute les sections top 100 de TPB, mais aussi recoupé avec les dernier ajouts les plus populaire, accèssible à l'addresse {proxy}/top/48h600. | ||
==''' Bittorrent '''== | ==''' Bittorrent '''== | ||
Ligne 15 : | Ligne 26 : | ||
Bittorrent fonctionne en connection pair à pair '''⇔''', le contenue étant distribué à travers plusieurs utilisateur qui ont un contenue ('''Seeder''') vers les utilisateurs qui télécharge ce contenue ('''Leecher'''). Chaque '''Leecher''' a un client bittorrent qui va d'abord se charger de se connecter et récupérer des bribes de donnée auprès de chaque '''Seeder''' connecté au réseaux crée autour du contenue. Des que le '''Leecher''' à le contenue (même partiel), le client bittorrent va envoyer des données à d'autres '''Leechers''', devenant Seeder à son tour. | Bittorrent fonctionne en connection pair à pair '''⇔''', le contenue étant distribué à travers plusieurs utilisateur qui ont un contenue ('''Seeder''') vers les utilisateurs qui télécharge ce contenue ('''Leecher'''). Chaque '''Leecher''' a un client bittorrent qui va d'abord se charger de se connecter et récupérer des bribes de donnée auprès de chaque '''Seeder''' connecté au réseaux crée autour du contenue. Des que le '''Leecher''' à le contenue (même partiel), le client bittorrent va envoyer des données à d'autres '''Leechers''', devenant Seeder à son tour. | ||
− | + | Ce système permet de distribué sur le réseaux de partage les contenue et les capacité de partage. Bittorrent est donc plus résilient qu'un server conventionel qui proposerait le contenue, car il existe plusieurs copie du contenue, à travers le monde parfois. | |
Cependant, il faut des Seeder pour pouvoir télécharger un contenue. Il existe des '''système de ratio''' téléchargement/partage, pour forcer les Seeder à continuer à partager le contenue. | Cependant, il faut des Seeder pour pouvoir télécharger un contenue. Il existe des '''système de ratio''' téléchargement/partage, pour forcer les Seeder à continuer à partager le contenue. | ||
Ligne 22 : | Ligne 33 : | ||
De plus, ce réseaux n'est par réellement décentralisé ou distribué car les liens vers les contenues sont référencé principalement sur le site web. | De plus, ce réseaux n'est par réellement décentralisé ou distribué car les liens vers les contenues sont référencé principalement sur le site web. | ||
− | == Outils == | + | == Techniques et Outils == |
− | + | ''DB'': base de donnée, ou DataBase | |
− | Le | + | Le projet complet se trouve [https://codeberg.org/Pontoporeia/tpb_scrapy dans ce repo Codeberg]. Le README.md contient les informations d'installation. |
+ | !! Attention, il est préférable de travailler depuis Linux. Bon courage si vous est sur un autre OS. | ||
− | L'idée principale est de lancer périodiquement le web scraper. À chaque lancement, il scrape le contenue de la page Top 100 ebooks, qui se trouve à cette adresse : | + | ===Vue d'ensemble=== |
+ | |||
+ | Le diagram des liens relationnelles entre les tables de la DB est créer grâce à [https://www.yworks.com/products/yed yEd graph editor]. | ||
+ | |||
+ | L'idée principale est de lancer périodiquement le web scraper. À chaque lancement, il scrape le contenue de la page '''Top 100 ebooks''', qui se trouve à cette adresse : | ||
{''url du proxy ThePirateBay''}/601/top | {''url du proxy ThePirateBay''}/601/top | ||
− | Il encode tout d'abord la table '''load_data''', qui contient les information du scraping. En même temps, il remplit la table '''load_entry''' | + | Il encode tout d'abord la table '''load_data''', qui contient les information du scraping. En même temps, il remplit la table '''load_entry''' avec chaque document du top 100, avec la clé de load_data pour identifier ces nouvelles données au scraping qui les a récupéré. |
+ | |||
+ | |||
+ | [[Fichier:Tpb diagram.png|frame|left|200px|Diagramme relationnelle fait avec Yed]] | ||
− | + | ===Détails technique=== | |
+ | Le projet utilise le framework Python de webcrawling [https://scrapy.org/ Scrapy] et MariaDB comme base de donnée relationnelle. | ||
+ | Les table sont créer via PHPMyAdmin au préalable. Dans le repository Codeberg ce trouve un export de la structure de la base de donnée. Il suffit de l'importer avec PHPMyAdmin pour montrer | ||
− | + | Secondaire mais important, la mise en place de proxy vers tor avec Docker, Docker-compose comme conteneur, des scripts divers et Scrapy pour accéder à The Pirate Bay en échappant au blocage DNS(Dynamique Name System) par les ISP(Internet Service Providers), le site permettant le téléchargement de contenue protéger par le droit d'auteur et le copyright et donc illégale. | |
− | À | + | Le crawler(script qui va récuperer les information aka <code>tpbspider.py</code> + les scripts qui envoi les information vers la DB aka <code>items.py</code> et <code>pipeline.py</code>) va récuperer les information de TPB (<code>tpbspider.py</code>), les encode dans un dic qui comprend les champs qui nous intéresse (<code>Item.py</code>) et qui l'appelle comme fonction (<code>TpbItem()</code>). Puis, le script spider envoi vers le script qui encode dans la DB (<code>Pipeline.py</code>), en utilisant un utilisateur mariadb appelé <code>crawler</code> pour s'y connecter. |
+ | Cet utilisateur a des permissions limité pour mieux conteneurisé les accès à la DB. | ||
+ | ===Visualisation des données=== | ||
+ | (À venir) Ensuite une série de routine SQL se chargerait de de généré les statistiques, et les mot clé/catégories seront soit entré à la mains après un référencement manuel des titres des document listé dans la DB, soit à travers du traitement syntaxique automatisé, avec [https://pytorch.org/ Pytorch], une library python de machine learning par exemple. | ||
− | + | Le résulat final prendrais probablement la forme d'un site web, où l'on pourrait généré un epub à un instant précis, sous la forme de sorte d'almanach contenant différentes statistiques et information extrait de la DB. | |
− | + | Pour le moment, je suis en train d'étudier les possibilité de deux librairie python pour généré des epub: | |
+ | * [https://pypi.org/project/EbookLib/ EbookLib] | ||
+ | * [https://pypub.readthedocs.io/en/latest/ pypub] |
Version actuelle datée du 23 mai 2022 à 06:51
Sommaire
Projet
Il se passe des choses intéréssentes sur Internet. Cet espace virtuel ou les humains dialoguent, échangent, partagent une multitude d'informations à propos d'un spectre de sujets tellement important qu'il y a un certains nombre de règles nommé "Règles d'internets" qui dictent notamment que Tout choses, dans le monde physique et le monde virtuel à un équivalent erotisé et/ou pornographique.
The Pirate Bay est un site web ( et plusieurs sites proxy) permettant de partager via [ Bittorrent] des contenues, souvant illégaux, comme des films, des série télévisé, des logiciels, et même des livres numériques et des pdfs. Les sites est divisé en rubriques, par exemples les contenues les plus télécharger de tout les temps.
Or, dans la section top 100 ebook, il semble y avoir un pourcentage des documents proposés soit systèmatiquement relatif au thématique du Sex et des relations sexuelles. Allant de contenue explicitement pornographique (pdf de la revue Playboy) à des livres de conseils de drague et même de plus en plus des livres qui pourraient être considéré comme politique (culture queer, féminisme). Ce qui m'a rendu curieux de voir si mon intuition était vérifiable.
À travers le web scraping du top 100 de la section ebook dans The Pirate Bay et le recroisement de ces données dans la durée, je compte observer la place du thème de la sexualité, pour voir l'évolution au cours du temps des contenues les plus téléchargé dans le top 100 ainsi que les thématique plus précise proposé.
Les donnée sont récupérer directement du site via web scraping et sont encodé directement dans une base de donnée mariadb. Ensuite, plusieurs routine SQL vont généré des statistiques relative à chaque document, notamment en grâce à des mots-clés et les nombre de Seeder et Leecher.
La visualisation de ces données prend la forme de soit un flux RSS qui contiendrait un résumé des dernières donnée et des statistiques au cours du temps, soit une publication générative d'un epub contenant des information sous la forme d'un almanach, une sorte de revue.
Un projet future pourrait prendre en compte toute les sections top 100 de TPB, mais aussi recoupé avec les dernier ajouts les plus populaire, accèssible à l'addresse {proxy}/top/48h600.
Bittorrent
Le partage des médias sur les réseaux torrents utilisent le protocole Bittorrent.
Bittorrent fonctionne en connection pair à pair ⇔, le contenue étant distribué à travers plusieurs utilisateur qui ont un contenue (Seeder) vers les utilisateurs qui télécharge ce contenue (Leecher). Chaque Leecher a un client bittorrent qui va d'abord se charger de se connecter et récupérer des bribes de donnée auprès de chaque Seeder connecté au réseaux crée autour du contenue. Des que le Leecher à le contenue (même partiel), le client bittorrent va envoyer des données à d'autres Leechers, devenant Seeder à son tour.
Ce système permet de distribué sur le réseaux de partage les contenue et les capacité de partage. Bittorrent est donc plus résilient qu'un server conventionel qui proposerait le contenue, car il existe plusieurs copie du contenue, à travers le monde parfois.
Cependant, il faut des Seeder pour pouvoir télécharger un contenue. Il existe des système de ratio téléchargement/partage, pour forcer les Seeder à continuer à partager le contenue. The Pirate Bay n'utilise pas un système de ratio. Les Seeder restent connectée par simple bonne volonté de partage.
De plus, ce réseaux n'est par réellement décentralisé ou distribué car les liens vers les contenues sont référencé principalement sur le site web.
Techniques et Outils
DB: base de donnée, ou DataBase
Le projet complet se trouve dans ce repo Codeberg. Le README.md contient les informations d'installation. !! Attention, il est préférable de travailler depuis Linux. Bon courage si vous est sur un autre OS.
Vue d'ensemble
Le diagram des liens relationnelles entre les tables de la DB est créer grâce à yEd graph editor.
L'idée principale est de lancer périodiquement le web scraper. À chaque lancement, il scrape le contenue de la page Top 100 ebooks, qui se trouve à cette adresse : {url du proxy ThePirateBay}/601/top
Il encode tout d'abord la table load_data, qui contient les information du scraping. En même temps, il remplit la table load_entry avec chaque document du top 100, avec la clé de load_data pour identifier ces nouvelles données au scraping qui les a récupéré.
Détails technique
Le projet utilise le framework Python de webcrawling Scrapy et MariaDB comme base de donnée relationnelle.
Les table sont créer via PHPMyAdmin au préalable. Dans le repository Codeberg ce trouve un export de la structure de la base de donnée. Il suffit de l'importer avec PHPMyAdmin pour montrer
Secondaire mais important, la mise en place de proxy vers tor avec Docker, Docker-compose comme conteneur, des scripts divers et Scrapy pour accéder à The Pirate Bay en échappant au blocage DNS(Dynamique Name System) par les ISP(Internet Service Providers), le site permettant le téléchargement de contenue protéger par le droit d'auteur et le copyright et donc illégale.
Le crawler(script qui va récuperer les information aka tpbspider.py
+ les scripts qui envoi les information vers la DB aka items.py
et pipeline.py
) va récuperer les information de TPB (tpbspider.py
), les encode dans un dic qui comprend les champs qui nous intéresse (Item.py
) et qui l'appelle comme fonction (TpbItem()
). Puis, le script spider envoi vers le script qui encode dans la DB (Pipeline.py
), en utilisant un utilisateur mariadb appelé crawler
pour s'y connecter.
Cet utilisateur a des permissions limité pour mieux conteneurisé les accès à la DB.
Visualisation des données
(À venir) Ensuite une série de routine SQL se chargerait de de généré les statistiques, et les mot clé/catégories seront soit entré à la mains après un référencement manuel des titres des document listé dans la DB, soit à travers du traitement syntaxique automatisé, avec Pytorch, une library python de machine learning par exemple.
Le résulat final prendrais probablement la forme d'un site web, où l'on pourrait généré un epub à un instant précis, sous la forme de sorte d'almanach contenant différentes statistiques et information extrait de la DB.
Pour le moment, je suis en train d'étudier les possibilité de deux librairie python pour généré des epub:
* EbookLib * pypub