Skip to content

Instantly share code, notes, and snippets.

@coffeant
Created May 6, 2015 09:35
Show Gist options
  • Save coffeant/21040900b80d133f2b14 to your computer and use it in GitHub Desktop.
Save coffeant/21040900b80d133f2b14 to your computer and use it in GitHub Desktop.
模拟浏览器抓屏功能
#!/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