Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'rubygems'
- require 'mechanize'
- require 'uri'
- require 'nokogiri'
- def get_group_posts(group_id,limit)
- out = []
- client = Mechanize.new
- url_grp = URI::HTTPS.build(host: 'ok.ru',path: "/group#{group_id}")
- body = client.get(url_grp).body
- body =~ /st.markerb="(.+?)"/i
- markerB = $1
- body =~ /gwtHash:"(.+?)"/i
- gwt_requested = $1
- html_requests_page = Nokogiri::HTML.fragment(body)
- puts "1 feed page(#{markerB})"
- out =+ html_requests_page.search(".feed-w")
- start_page = 2
- url = URI::HTTPS.build(host: 'ok.ru',path: '/dk', query: URI.encode_www_form(
- 'cmd': 'AltGroupMainFeedsNewRB',
- 'st.gid': group_id
- ))
- []
- while markerB && out.count < limit do
- puts "#{start_page} feed page(#{markerB})"
- content = client.post(url,{
- 'fetch': false,
- 'st.page': start_page,
- 'st.markerB': markerB,
- 'gwt.requested': gwt_requested
- }).body
- content =~ /st.markerb="(.+?)"/i
- markerB = $1
- ajax_requested_page = Nokogiri::HTML.fragment(content)
- posts = ajax_requested_page.search(".feed-w") #это прост для примера
- out += posts
- start_page += 1
- end
- #вот туть надо сделать чтобы если на странице больше постов чем надо до лимита последнии из out выпиливать
- out
- end
- get_group_posts('53485850722549',40)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement