.netでYourFileHostのスクラッピングサイトを作る1
最終成果物はYourFileHostへのURLが列挙されたHTMLを作成すること。
WebサーバはApacheでもIISでもよし。静的なコンテンツを動的に作成する。
DBはMSDE。クローラとかはVB.netでFormアプリとして作成。
- Googleブログ検索からYourFileHostへのリンクが張られているサイトを検索して、それをRSS(1)として受け取る。
- (1)のURLにアクセスしてYourFileHostへのリンクが張られていて、かつ女優名にヒットする場合はそのページにあるRSSを取得してDBにぶっこむ(2)
- (2)のRSSを定期監視して新しいエントリが増えたらそいつをスクラッピングサイトのエントリに追加する
てな感じで、適当に作れるんじゃないかと思う。しばしこれを作ってみようかと思う。
まずは最初のGoogleブログ検索から検索結果を取得するクラス
Imports System.Text.RegularExpressions Imports Rss ''' <summary> ''' Googleブログ検索で検索結果を返すクラス ''' </summary> ''' <remarks></remarks> Public Class ModGoogleBlogSearch Private m_rssFeed As List(Of RssItem) Public Property Rss() As List(Of RssItem) Get Return m_rssFeed End Get Set(ByVal value As List(Of RssItem)) m_rssFeed = value End Set End Property Private Sub New() End Sub ''' <summary> ''' 対象のURLに含まれるRSSのURLを取得します。 ''' </summary> ''' <param name="searchWord"></param> ''' <returns></returns> ''' <remarks></remarks> Public Shared Function Read(ByVal searchWord As String, ByVal resultCount As Integer) As ModGoogleBlogSearch Dim instance As New ModGoogleBlogSearch instance.Rss = GetRss(searchWord, resultCount) Return instance End Function Private Shared Function GetRss(ByVal searchWord As String, ByVal resultCount As Integer) As List(Of Rss.RssItem) Dim url As String = "http://blogsearch.google.co.jp/blogsearch_feeds?hl=ja&q=[word]&lr=lang_ja&ie=utf-8&num=[num]&output=rss" url = url.Replace("[word]", Web.HttpUtility.UrlEncode(searchWord)).Replace("[num]", resultCount.ToString) Dim feed As RssFeed = RssFeed.Read(url) Dim list As New List(Of RssItem) If feed.Channels.Count > 0 Then For i As Integer = 0 To feed.Channels(0).Items.Count - 1 list.Add(feed.Channels(0).Items(i)) Next End If Return list End Function End Class