- Äɲ䵤줿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
- ºï½ü¤µ¤ì¤¿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
&pgid;
ÊýË¡¤¬¸«Åö¤¿¤é¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢ºî¤ê¤Þ¤·¤¿¡£
http://okra.ark-web.jp/~konuma/cgi-bin/search.cgi
#blikimore
**¤É¤¦¤ä¤Ã¤Æ»È¤¦¤Î¡© [#h179b1c4]
-¾åµ¤Î¥Ú¡¼¥¸¤Ë¸¡º÷¥Õ¥©¡¼¥à¤¬¤¢¤ë¤Î¤Ç¡¢¤½¤³¤Ç¸¡º÷¤·¤Þ¤¹¡£
-¤¹¤ë¤È¡¢¤Ï¤Æ¤Ê¤Ç¥Ö¥Ã¥¯¥Þ¡¼¥¯¤µ¤ì¤Æ¤¤¤ë¿ô¤Î¥é¥ó¥¥ó¥°¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
-¥é¥ó¥¥ó¥°¤ÎÂоݤȤʤë¤Î¤Ï¡¢¤Ï¤Æ¤Ê¤Ç¸¡º÷¤ò¤ª¤³¤Ê¤Ã¤¿¤È¤¤Ë¾å°Ì100¤Þ¤Ç¤Ëɽ¼¨¤µ¤ì¤ë¥Ú¡¼¥¸¤Î¤ß¤Ç¤¹¡£
***Î㤨¤Ð¤³¤ó¤Ê¸¡º÷¤¬¤Ç¤¤Þ¤¹¡£ [#z8198fb8]
-ruby¤Ë¤Ä¤¤¤Æ½ñ¤¤¤Æ¤¢¤ë¥Ú¡¼¥¸¤Ç¡¢ºÇ¤â¥Ö¥Ã¥¯¥Þ¡¼¥¯¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¤É¤³¡©
http://okra.ark-web.jp/~konuma/cgi-bin/search.cgi?keyword=ruby
-www.ark-web.jp¤Ë¤¢¤ë¥Ú¡¼¥¸¤Ç¡¢ºÇ¤â¥Ö¥Ã¥¯¥Þ¡¼¥¯¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¤É¤³¡©
http://okra.ark-web.jp/~konuma/cgi-bin/search.cgi?keyword=site%3Awww.ark-web.jp
Äɵ¡¢¤³¤ì¤Ï[[¤³¤Ã¤Á:http://b.hatena.ne.jp/entrylist?sort=count&url=http%3A%2F%2F]]¤ò»È¤Ã¤¿¤Û¤¦¤¬¤¤¤¤¤Ç¤¹¡£
http://b.hatena.ne.jp/entrylist?sort=count&url=http%3A%2F%2Fwww.ark-web.jp
**Ãæ¿È¤É¤¦¤Ê¤Ã¤Æ¤ó¤Î¡© [#y5f01b09]
***³µÍ× [#occ04723]
-ruby¤Ç¤¹¡£
-¤Ï¤Æ¤Ê¤Î¸¡º÷·ë²Ì¤«¤é¥¹¥¯¥ì¥¤¥Ô¥ó¥°¤·¤Æ¤¤¤Þ¤¹¡£
http://www.hatena.ne.jp/
-»ÖÅĤµ¤ó¤Îºî¤Ã¤¿¢¤ò»²¹Í¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
[[YouTube¸¡º÷·ë²Ì¤ò¥¹¥¯¥ì¥¤¥Ô¥ó¥°¤·¤Æ¾¡¼êAPI²½]]
--//»²¹Í¤Ë¤·¤Æ¤¤¤ë¤È¤¤¤¦¤«¡¢ÂçÉôʬ¥³¥Ô¡¼¤Ç¤¹¡£¡£¡£
***¾ÜºÙ [#k0ac4317]
-¤³¤Î¥µ¡¼¥Ó¥¹¤Ï°Ê²¼¤Î»°¤Ä¤Î¥Õ¥¡¥¤¥ë¤«¤éÀ®¤êΩ¤Ã¤Æ¤Þ¤¹
search.cgi -- ɽ¼¨Éôʬ
Hatena/SearchResultScraper.rb -- ¸¡º÷¤ª¤è¤Ó¥¹¥¯¥ì¥¤¥Ô¥ó¥°¤ò¤¹¤ëÉôʬ
Hatena/page.rb -- ¸¡º÷·ë²Ì¤Î1¥Ú¡¼¥¸¤¢¤¿¤ê¤Î¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ëÉôʬ
¤½¤ó¤Ê¤ËŤ¤¥³¡¼¥É¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢Á´Éô·ÇºÜ¤·¤Þ¤¹¡£
-''search.cgi''
#!/usr/bin/ruby
require 'cgi'
require 'Hatena/SearchResultScraper'
require 'Hatena/page'
require 'kconv'
#¤Ï¤Æ¤Ê¤Ç¤Î¸¡º÷·ë²Ì¤ò¼èÆÀ¤¹¤ë¡£
def scrape keyword
scraper = Hatena::SearchResultScraper.new(Kconv.toutf8(keyword), 10)
scraper.open
pages = scraper.order_by_bookmark_count
end
#¸¡º÷·ë²Ì¤òɽ¼¨¤¹¤ë
def print_pages pages
pages.each do |page|
print "<a href="#{page.url}">#{page.title}</a> <strong><a href="http://b.hatena.ne.jp/entry/#{page.url}">#{page.bookmark_count}</a></strong><br>"
end
end
print "Content-type: text/html\n\n"
cgi = CGI.new
keyword = cgi['keyword']
print <<EOS
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC_JP">
<title>form</title>
</head>
<body>
<form action="./search.cgi" method="get" charset=UTF-8">
<input name="keyword" value="#{keyword}">
<input type="submit" value="Search">
</form>
EOS
print_pages(scrape(keyword)) unless keyword.empty?
print <<EOS
</body>
</html>
EOS
-''Hatena/SearchResultScraper.rb''
require 'open-uri'
require 'cgi'
require 'rubygems'
require 'hpricot'
require 'Hatena/page'
module Hatena
class SearchResultScraper
@@search_base_url = "http://search.hatena.ne.jp/search?ie=utf8&word="
def initialize keyword, count = 10
@keyword = keyword
@count = count
end
#URL¤ò³«¤¡¢¸¡º÷¤ò¤ª¤³¤Ê¤¦¡£@count¤Ç»ØÄꤵ¤ì¤¿²ó¿ô¤À¤±¸¡º÷·ë²Ì¤òÆɤ߹þ¤à
def open
@pages = []
@count.times do |i|
page = open_page(i+1)
break if page.size == 0
@pages.concat(page)
end
@pages
end
#¥Ö¥Ã¥¯¥Þ¡¼¥¯·ï¿ô¤Ç¥½¡¼¥È¤¹¤ë¡£
def order_by_bookmark_count
@pages.sort!
@pages.reverse!
end
private
#pageÈÖÌܤθ¡º÷·ë²Ì¤ò¥¹¥¯¥ì¥¤¥Ô¥ó¥°¤¹¤ë
def open_page page
url = @@search_base_url + CGI.escape(@keyword) + "&page=" + CGI.escape(page.to_s)
html = Kernel.open(url).read
replace_document_write_javascript(html)
scrape(Hpricot.parse(html))
end
#¸¡º÷·ë²Ì¤Î¥Ú¡¼¥¸¤ò¥¹¥¯¥ì¥¤¥Ô¥ó¥°¤¹¤ë
def scrape result
pages = []
result.search("div.hatena-search-result-item").each do |page_html|
page = Hatena::Page.new
page.title = scrape_title(page_html)
page.url = scrape_url(page_html)
page.bookmark_count = scrape_bookmark_count(page_html)
pages << page
end
pages
end
#¼ÙËâ¤Êjavascript¤Îʸ»úÎó¤òÃÖ´¹¤¹¤ë
def replace_document_write_javascript html
html.gsub!(%r{<script language="javascript" type="text/javascript">.*?document.write\('(.*?)'\).*?</script>}m, '\1')
end
#¥¿¥¤¥È¥ë¤ò¥¹¥¯¥ì¥¤¥Ô¥ó¥°¤¹¤ë
def scrape_title page_html
page_html.search("//h3//a").inner_html
end
#URL¤ò¥¹¥¯¥ì¥¤¥Ô¥ó¥°¤¹¤ë
def scrape_url page_html
page_html.search("//h3").inner_html.sub(/<a href="([^"]+)">.+/, '\1')
end
#¥Ö¥Ã¥¯¥Þ¡¼¥¯·ï¿ô¤ò¥¹¥¯¥ì¥¤¥Ô¥ó¥°¤¹¤ë
def scrape_bookmark_count page_html
page_html.search("//span[@class='users']").inner_html.sub(/(<.+>)?<a.*?>(\d+) users?<\/a>(<\/.+>)?/, '\2')
end
end
end
-''Hatena/page.rb''
module Hatena
class Page
attr_accessor :url
attr_accessor :title
attr_accessor :bookmark_count
#¥Ö¥Ã¥¯¥Þ¡¼¥¯·ï¿ô¤ÇÈæ³Ó¤¹¤ë(¥Ö¥Ã¥¯¥Þ¡¼¥¯·ï¿ô¤Ç¥½¡¼¥È¤¹¤ë¤È¤¤Î¤¿¤á¤Ë)
def <=> another
self.bookmark_count.to_i <=> another.bookmark_count.to_i
end
end
end
**À©¸Â»ö¹à [#qfe584fe]
-ÆüËܸì¤Ç¸¡º÷¤Ç¤¤Þ¤»¤ó¡£
--%%¤¤¤º¤ìÂбþ¤¹¤ëͽÄê¤Ç¤¹¡£%%Âбþ¤·¤Þ¤·¤¿¡£
-ÃÙ¤¤¤Ç¤¹¡£
--¤Ï¤Æ¤Ê¤Î¸¡º÷²èÌ̤ò10¥Ú¡¼¥¸Ê¬¤â¥¹¥¯¥ì¥¤¥Ô¥ó¥°¤·¤Æ¤¤¤ë¤Î¤Ç¡£¡£¡£
-¥é¥ó¥¥ó¥°¤ÏÀµ³Î¤¸¤ã¤Ê¤¤¤«¤â
--¥é¥ó¥¥ó¥°¤ÎÂоݤȤʤë¤Î¤¬¡Ö¤Ï¤Æ¤Ê¤Î¸¡º÷·ë²Ì¤Î¾å°Ì100¤Þ¤Ç¡×¤Ê¤Î¤Ç¡¢¤½¤ì¤è¤ê²¼¤Î½ç°Ì¤Ë¤¢¤ë¥Ú¡¼¥¸¤¬Ìµ»ë¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
**¥³¥á¥ó¥È [#b76cef3e]
- ¥Ö¥Ã¥¯¥Þ¡¼¥¯¿ô¤Î¤È¤³¤í¤ò¥ê¥ó¥¯¤Ë¤·¤Æ¡¢¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¥Ú¡¼¥¸¡Ê¤Ã¤Æ¸À¤¦¤Î¤«¤Ê¡©¡Ë¤ØÈô¤Ö¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£ -- [[¾®¾Â]] &new{2007-01-30 (²Ð) 12:14:39};
- I like your site because it's very interesting!< -- [[Maria]] &new{2007-06-15 (¶â) 20:03:57};
- Yhanks you : <a href= http://mywebpage.netscape.com/bwwfst/Free-Mp3-Download.htm >Free Music Downloads</a> = <a href= http://nmstandards.org/portal_memberdata/portraits/vsemoe#musicdownloads >download music free</a> = <a href= http://www.opensource.wa.gov.au/portal_memberdata/portraits/greg34#music >free music downloads</a> = <a href= http://musicdownloadsmp3.tripod.com >music</a> = <a href= http://musicdownloadsmp3.tripod.com >free music download sites</a> = <a href= http://musicdownloadsmp3.tripod.com/music_downloads.html >free music download sites</a> = <a href= http://musicdownloadsmp3.tripod.com/music_downloads.html >limewire music downloads</a> = <a href= http://www.opensource.wa.gov.au/portal_memberdata/portraits/greg34#music >Free Music Downloads</a> = <a href= http://mywebpage.netscape.com/music5site/download-music.htm >Free Music Downloads</a> = http://mywebpage.netscape.com/bwwfst/Free-Mp3-Download.htm Free Music Downloads :: http://nmstandards.org/portal_memberdata/portraits/vsemoe#musicdownloads free ipod music downloads sites :: http://www.opensource.wa.gov.au/portal_memberdata/portraits/greg34#music free music downloads :: http://musicdownloadsmp3.tripod.com music download :: http://musicdownloadsmp3.tripod.com free music :: http://musicdownloadsmp3.tripod.com/music_downloads.html free music to download :: http://musicdownloadsmp3.tripod.com/music_downloads.html download music video :: http://www.opensource.wa.gov.au/portal_memberdata/portraits/greg34#music free music downloads :: http://mywebpage.netscape.com/music5site/download-music.htm free music downloads :: http://music.besh.net/music/ music :: http://idisk.mac.com/fmp3musicdownloads/Public/music.html free download music :: [url=http://mywebpage.netscape.com/bwwfst/Free-Mp3-Download.htm]free music downloads[/url] .. [url=http://nmstandards.org/portal_memberdata/portraits/vsemoe#musicdownloads]download free music[/url] .. [url=http://www.opensource.wa.gov.au/portal_memberdata/portraits/greg34#music]free music downloads[/url] .. [url=http://musicdownloadsmp3.tripod.com]free music ipods[/url] .. [url=http://musicdownloadsmp3.tripod.com]free music downloads[/url] .. [url=http://musicdownloadsmp3.tripod.com/music_downloads.html]free music video[/url] .. [url=http://musicdownloadsmp3.tripod.com/music_downloads.html]download music free[/url] .. -- [[free ipod music downloads]] &new{2007-06-18 (·î) 20:08:36};
- Yhanks you : <a href= http://mywebpage.netscape.com/bwwfst/Free-Mp3-Download.htm >Free Music Downloads</a> = <a href= http://nmstandards.org/portal_memberdata/portraits/vsemoe#musicdownloads >download music free</a> = <a href= http://www.opensource.wa.gov.au/portal_memberdata/portraits/greg34#music >free music downloads</a> = <a href= http://musicdownloadsmp3.tripod.com >music</a> = <a href= http://musicdownloadsmp3.tripod.com >free music download sites</a> = <a href= http://musicdownloadsmp3.tripod.com/music_downloads.html >free music download sites</a> = <a href= http://musicdownloadsmp3.tripod.com/music_downloads.html >limewire music downloads</a> = <a href= http://www.opensource.wa.gov.au/portal_memberdata/portraits/greg34#music >Free Music Downloads</a> = <a href= http://mywebpage.netscape.com/music5site/download-music.htm >Free Music Downloads</a> = http://mywebpage.netscape.com/bwwfst/Free-Mp3-Download.htm Free Music Downloads :: http://nmstandards.org/portal_memberdata/portraits/vsemoe#musicdownloads free ipod music downloads sites :: http://www.opensource.wa.gov.au/portal_memberdata/portraits/greg34#music free music downloads :: http://musicdownloadsmp3.tripod.com music download :: http://musicdownloadsmp3.tripod.com free music :: http://musicdownloadsmp3.tripod.com/music_downloads.html free music to download :: http://musicdownloadsmp3.tripod.com/music_downloads.html download music video :: http://www.opensource.wa.gov.au/portal_memberdata/portraits/greg34#music free music downloads :: http://mywebpage.netscape.com/music5site/download-music.htm free music downloads :: http://music.besh.net/music/ music :: http://idisk.mac.com/fmp3musicdownloads/Public/music.html free download music :: [url=http://mywebpage.netscape.com/bwwfst/Free-Mp3-Download.htm]free music downloads[/url] .. [url=http://nmstandards.org/portal_memberdata/portraits/vsemoe#musicdownloads]download free music[/url] .. [url=http://www.opensource.wa.gov.au/portal_memberdata/portraits/greg34#music]free music downloads[/url] .. [url=http://musicdownloadsmp3.tripod.com]free music ipods[/url] .. [url=http://musicdownloadsmp3.tripod.com]free music downloads[/url] .. [url=http://musicdownloadsmp3.tripod.com/music_downloads.html]free music video[/url] .. [url=http://musicdownloadsmp3.tripod.com/music_downloads.html]download music free[/url] .. -- [[free ipod music downloads]] &new{2007-06-18 (·î) 20:10:30};
#comment
#blikifooter(¾®¾Â)
tag: [[WebAPI>tag/WebAPI]],¡¡[[¥¹¥¯¥ì¥¤¥Ô¥ó¥°>tag/¥¹¥¯¥ì¥¤¥Ô¥ó¥°]]