Ich habe bereits zweimal versucht, am Grafiksystem zu arbeiten, aber da die Daten selbst etwas subtil waren, möchte ich aus Rache den Übergang der Anzahl der Ansichten des auf Qiita veröffentlichten Artikels grafisch darstellen!
Heute schreibe ich einen Code, um die Anzahl der Aufrufe des Artikels zu erhalten, den ich auf Qiita gepostet habe
https://qiita.com/itaya/items/262eec85e36763497664
Ich habe im obigen Artikel einmal über Qiitas Schaben geschrieben, also werde ich das im Grunde verwenden.
crawler.rb
require 'nokogiri'
require 'mechanize'
require 'selenium-webdriver'
def selemium_init
ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36'
# caps = Selenium::WebDriver::Remote::Capabilities.chrome('chromeOptions' => { args: ["--user-agent=#{ua}", 'window-size=1280x800', '--incognito'] }) #Geheimmodus
caps = Selenium::WebDriver::Remote::Capabilities.chrome('chromeOptions' => {args: ["--headless","--no-sandbox", "--disable-setuid-sandbox", "--disable-gpu", "--user-agent=#{ua}", 'window-size=1280x800']})
client = Selenium::WebDriver::Remote::Http::Default.new
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
end
driver = selemium_init
driver.navigate.to 'https://qiita.com/login'
driver.execute_script("document.getElementsByName('identity')[0].value = 'Mail Adresse'")
driver.execute_script("document.getElementsByName('password')[0].value = 'Passwort'")
driver.execute_script("document.getElementsByName('commit')[0].click()")
sleep 1
Hier ist der Code zum Anmelden.
Von hier aus erhalte ich diesmal eine Liste meiner Seiten und springe zu dieser Seite, um eine Sammlung von Ansichten zu erhalten
crawler.rb
driver.navigate.to 'https://qiita.com/itaya'
sleep 1
doc = Nokogiri::HTML.parse(driver.page_source, nil, 'utf-8')
doc.css('.AllArticleList__Item-mhtjc8-2').each do |div|
driver.navigate.to "https://qiita.com" + div.css('.AllArticleList__ItemBodyTitle-mhtjc8-6')[0]['href']
sleep 1
article_doc = Nokogiri::HTML.parse(driver.page_source, nil, 'utf-8')
p article_doc.css('.it-Header_pv')[0].text.split(" ")[0]
end
Ich fühle mich so.
Wenn Sie dies ausführen
"99"
"56"
"218"
"212"
"120"
"107"
"288"
"112"
"213"
"93"
"111"
"128"
"131"
"149"
"383"
"801"
"4629"
"510"
"1086"
Sie können die Anzahl der Ansichten des Artikels auf der ersten Seite wie folgt anzeigen lassen. Allerdings kann ich die Anzahl der Aufrufe der Artikel auf der zweiten und den folgenden Seiten allein damit nicht ermitteln, daher möchte ich diesen Teil morgen machen ...
** * Bitte beachten Sie, dass zu viele Anfragen den Server überfordern !!! **
Sie können die API von Qiita normal verwenden ... https://qiita.com/api/v2/docs#%E6%8A%95%E7%A8%BF
Memo Täglich am 14. Tag veröffentlicht