PDA

View Full Version : blogsky



talent1
پنج شنبه 19 دی 1392, 10:53 صبح
روشی دارید که بسه اخرین پست بلاگاسکای رو بدست اورد .

SlowCode
پنج شنبه 19 دی 1392, 22:51 عصر
به عنوان مثلا دوتا لیست باکس به اسم های lstTitle,lstContent بزار رو فرم.

Private Sub Form_Load()
WebBrowser1.Navigate "http://www.blogsky.com/"
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Set posts = WebBrowser1.Document.getElementByID("home-latestposts").getElementsByTagName("div")
For Each post In posts
If post.className = "post" Then
lstTitle.AddItem post.getElementsByTagName("a")(0).innerHTML
lstContent.AddItem = post.getElementsByTagName("p")(0).innerHTML
End If
Next
End Sub

talent1
جمعه 20 دی 1392, 10:08 صبح
فکر کنم منظورمو بد رسوندم
مثلا میخوام شماره اخرین پست این وبلاگ رو بده
http://shirdel.blogsky.com/

SlowCode
جمعه 20 دی 1392, 10:53 صبح
خب تو این حالت هم مطالب داخل یه دیو با کلاس post هستن، ولی شماره ندارن که!
اگه میخوای متن آخرین پست رو بدست بیاری این مسیر رو برو.
div.post:nth-child(3) > div:nth-child(3)
تو این وبلاگ دومین پست آخریه پست هست، چون یه پست ثابت داره و اون هم داخل دیو با کلاس post قرار داره.

حالا ممکنه طرف یهو یه پست ثابت دیگه هم بزاره اونوقت کد ما اشتباه میکنه. بهترین راه حل اینه که تاریخ ارسال پست همه پست ها رو تا زمانی که تاریخ پست بعدی بزرگتر از پست جاری هست بدست بیاری.
بعد آخرین پستی که بدست آوردی همون جدیدترین پست هست.
به عبارت ساده تر:
1- اولین تاریخ رو میخونی و میریزی تو متغیر max.
2- اگه دومین تاریخ از max بزرگتر بود میریزیش تو max و همینطوری ادامه میدی، اگه زمانی پست بعدی از پست جاری کوچکتر بود عملیات رو متوقف میکنی و پست جاری رو نشون میدی.

talent1
جمعه 20 دی 1392, 13:46 عصر
گرفتم چی میگی ولی هرجوری خواستم پیادادش کنم نشد هرکاری میکنم به جواب درست نمیرسم