本文实例为大家分享了python自动网页截图并裁剪图片的具体代码,供大家参考,具体内容如下
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# coding=utf-8
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from PIL import Image
import os
all_urls = [ 'http:/****edit' ]
def login():
chrome_options = Options()
chrome_options.add_argument( '--headless' )
driver = webdriver.Chrome(executable_path = './chromedriver' ,chrome_options = chrome_options)
driver.set_window_size( 1200 , 741 )
driver.implicitly_wait( 2 )
print ( '初始化中...' )
driver.get( "http://x*****e" )
print ( '填写登录信息中...' )
acc = driver.find_element_by_id( 'login-email' )
pwd = driver.find_element_by_id( 'login-pass' )
btn = driver.find_element_by_tag_name( 'button' )
acc.send_keys( '***' )
pwd.send_keys( '***' )
btn.click()
print ( '跳转到验证码页面中...' )
time.sleep( 2 )
capta = driver.find_element_by_id( 'code' )
capta_input = input ( '请输入两步验证码:' )
capta.send_keys(capta_input)
btn1 = driver.find_element_by_tag_name( 'button' )
btn1.click()
time.sleep( 2 )
print ( '跳转到创意编辑页面中...' )
return driver
def get_screen(driver,urls):
count = 1
for url in urls:
driver.get(url)
print ( '正在抓取--> %s' % url)
count + = 1
time.sleep( 2 )
uid = url.split( '/' )[ - 2 ]
cid = url.split( '/' )[ - 5 ]
driver.get_screenshot_as_file( "./screen_shot/{}-{}.png" . format (uid,cid))
print ( "创意--> {}-{}.png 已经保存" . format (uid,cid))
print ( '还剩 %s 个' % str ( len (urls) - count))
def crop_img():
for img in os.listdir( './screen_shot' ):
if img.endswith( '.png' ):
print ( '%s裁剪中。。' % img)
im = Image. open ( './screen_shot/%s' % img)
x = 755
y = 162
w = 383
h = 346
region = im.crop((x, y, x + w, y + h))
region.save( "./screenshot_final/%s" % img)
if __name__ = = '__main__' :
driver = login()
get_screen(driver,all_urls)
driver.quit()
print ( '所有抓取结束' )
crop_img()
print ( '所有裁剪结束' )
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/Erick-L/p/9390238.html