Created
May 6, 2015 09:35
-
-
Save coffeant/21040900b80d133f2b14 to your computer and use it in GitHub Desktop.
模拟浏览器抓屏功能
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
import sys, thread | |
import gtk, webkit | |
import ctypes | |
import warnings | |
import urllib | |
import json | |
from sys import stdin | |
from time import sleep | |
use_proxy = False | |
libgobject = ctypes.CDLL('/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0') | |
libwebkit = ctypes.CDLL('/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1') | |
libsoup = ctypes.CDLL('/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1') | |
libwebkit = ctypes.CDLL('/usr/lib/x86_64-linux-gnu/libwebkitgtk-1.0.so') | |
session = libwebkit.webkit_get_default_session() | |
if use_proxy: | |
proxy_uri = libsoup.soup_uri_new('http://web-proxy.oa.com:8080') # set your proxy url | |
libgobject.g_object_set(session, "proxy-uri", proxy_uri, None) | |
cookiejar = libsoup.soup_cookie_jar_text_new('/home/daweiqian/temp/baidu_login/cookies.txt',False) | |
libsoup.soup_session_add_feature(session, cookiejar) | |
gtk.gdk.threads_init() # suggested by Nicholas Herriot for Ubuntu Koala | |
win = gtk.Window(gtk.WINDOW_TOPLEVEL) | |
view = webkit.WebView() | |
win.add(view) | |
win.set_size_request(1000,600) | |
win.show_all() | |
win.connect("destroy", lambda q: gtk.main_quit()) | |
keyword_list =["张碧晨","王思聪","王紫绮","郭美美","grace","贞操妹妹","王林","张雨绮","王自如","王珂","曹格"] | |
keyword_index = -1 | |
def finished_loading(view, frame): | |
print "in loading finished with index %d" % keyword_index | |
sleep(10) | |
view.execute_script('oldtitle=document.title;document.title=document.documentElement.innerHTML;') | |
html = view.get_main_frame().get_title() | |
view.execute_script('document.title=oldtitle;') | |
width, height = win.get_size() | |
pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, width, height) | |
screenshot = pixbuf.get_from_drawable(win.window, win.get_colormap(),0, 0, 0, 0, width, height) | |
screenshot.save(keyword_list[keyword_index] + '.png', 'png') | |
open_page() | |
view.connect("load-finished", finished_loading) | |
def open_page(): | |
global keyword_index | |
keyword_index = keyword_index + 1 | |
if keyword_index >= len(keyword_list): | |
gtk.main_quit() | |
return | |
keyword = keyword_list[keyword_index] | |
search_param = {'tpl':"trend", 'word':keyword.decode("utf-8").encode("gb2312")} | |
url = 'http://index.baidu.com/?' + urllib.urlencode(search_param) | |
view.open(url) | |
open_page() | |
gtk.main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment