Cette fois, je vais faire quelque chose qui trace le nombre de téléchargements de photos.
** Détails ** Il existe un site de publication d'images sans droit d'auteur appelé Photo AC, qui affiche le nombre de téléchargements la veille, mais le lendemain, je ne peux pas voir le nombre de téléchargements il y a deux jours, donc une fois par jour J'aimerais l'obtenir, le mettre dans la base de données, et enfin faire un graphique. https://www.photo-ac.com/ (Si cela entraîne la suspension de votre compte, veuillez le faire à vos propres risques)
Grattage
Pour l'instant, je voudrais implémenter la partie qui obtient une fois les informations du site.
Contrairement à la dernière fois, cette fois j'utiliserai Mechanize car cela implique une connexion.
source 'https://rubygems.org/'
gem 'nokogiri'
gem 'mechanize'
Dans cet état
bundle install --path .bundle
La raison pour laquelle vous spécifiez le chemin avec --path est que si vous ne le spécifiez pas, il sera reflété dans tout l'environnement local et ce sera gênant plus tard.
Cliquez ici pour le code de la pièce réellement acquise
crawler.rb
require 'nokogiri'
require 'mechanize'
agent = Mechanize.new
agent.get("https://www.photo-ac.com")
agent.post("https://www.photo-ac.com/auth/login",{
acc_type: 'cr',
email: 'adresse mail',
password: 'mot de passe',
remember_me: '1'
})
page = agent.get("https://www.photo-ac.com/creator/list/?pl_q=&pl_order=-releasedate&pl_pp=200&pl_disp=all&pl_ntagsec=&pl_tags50over=&pl_chkpsd=")
doc = Nokogiri::HTML.parse(page.body, nil, 'utf-8')
doc.css(".photo-list").each{|div|
p div.css(".sectiondata li")[0].text
p div.css(".sectionimg .preview")[0].text
}
Lorsque vous exécutez ceci
"ID:2875969"
"0"
"ID:2875964"
"0"
"ID:2875028"
"0"
"ID:2875022"
"0"
"ID:2874964"
"0"
"ID:2871884"
"0"
"ID:2871883"
"0"
"ID:2871879"
"0"
"ID:2871873"
"0"
"ID:2871870"
"0"
"ID:2837286"
"0"
"ID:2837285"
"0"
"ID:2837282"
"0"
"ID:2837281"
"0"
"ID:2837280"
"0"
"ID:2837277"
"0"
"ID:2837276"
"0"
"ID:2836745"
"0"
"ID:2836741"
"3"
"ID:2836737"
"1"
"ID:2836735"
"2"
"ID:2836730"
"1"
"ID:2836723"
"0"
"ID:2836718"
"1"
"ID:2746521"
"6"
"ID:2746517"
"11"
"ID:2746513"
"1"
"ID:2746505"
"1"
"ID:2746086"
"1"
"ID:2746084"
"4"
"ID:2746070"
"15"
"ID:2746066"
"16"
"ID:2742664"
"10"
"ID:2742530"
"17"
"ID:2742522"
"6"
"ID:2742517"
"3"
"ID:2741719"
"4"
"ID:2741715"
"16"
"ID:2741708"
"2"
"ID:2741705"
"0"
"ID:2741700"
"0"
"ID:2741699"
"0"
"ID:2741675"
"21"
"ID:2741674"
"2"
"ID:2741653"
"0"
"ID:2741629"
"1"
"ID:2741567"
"0"
"ID:2741381"
"22"
"ID:2741336"
"7"
"ID:2733068"
"14"
"ID:2733060"
"0"
"ID:2733050"
"1"
"ID:2690326"
"2"
"ID:2690291"
"7"
"ID:2690259"
"1"
Comme ci-dessus, vous pouvez voir l'ID de l'image et le nombre actuel de téléchargements. Si vous mettez cela dans la base de données une fois par jour et stockez les données, il semble facile de les représenter graphiquement.
Recommended Posts