更多爬虫实例请见 https://blog.youkuaiyun.com/weixin_39777626/article/details/81564819
from selenium import webdriver
import time
from PIL import Image
from io import BytesIO
import pytesseract
def fill_in(message,browser):
message=[account,password]
input=browser.find_elements_by_css_selector('.px.p_fre')
j=0
for i in input:
if j<=1:
i.send_keys(message[j])
j+=1
def get_image(browser,x,y):
screenshot = browser.get_screenshot_as_png()
screenshot = Image.open(BytesIO(screenshot))
captcha=screenshot.crop((x,y,x+100,y+30))
captcha.save('code.png')
def verified_code(browser):
image=Image.open('code.png')
gray=image.convert('L')
bw=gray.point(lambda x:0 if x<108 else 255,'1')
result=pytesseract.image_to_string(bw)
code=browser.find_element_by_css_selector('.txt.px.vm')
code.clear()
code.send_keys(result)
def click_submit(browser):
submits=browser.find_elements_by_css_selector('.pn.pnc')
j=0
for submit in submits:
if j==1:
submit.click()
j+=1
def login_page(account,password):
message=[account,password]
fill_in(message,browser)
while browser.find_element_by_css_selector('.deandenglu_bgs').text=='亲爱的会员,欢迎您回来':
changes=browser.find_elements_by_css_selector('.xi2')
j=0
for change in changes:
j+=1
if j==3:
change.click()
time.sleep(1)
get_image(browser,361,616)
verified_code(browser)
click_submit(browser)
time.sleep(2)
def python_basic(browser):
date=time.strftime("%Y/%m/%d", time.localtime())
title='#打卡#'+date
content='''在评论区打卡
格式如下:
#学号+微信昵称#
代码
'''
input=browser.find_element_by_css_selector('#subject')
input.send_keys(title)
input=browser.find_element_by_css_selector('#fastpostmessage')
input.send_keys(content)
while browser.current_url=='https://bbs.idataloop.com/forum.php?mod=forumdisplay&fid=166':
changes=browser.find_elements_by_css_selector('.xi2')
j=0
for change in changes:
j+=1
if j==7:
change.click()
time.sleep(1)
code=browser.find_element_by_css_selector('.txt.px.vm')
code.click()
get_image(browser,81,534)
verified_code(browser)
submit=browser.find_element_by_css_selector('#fastpostsubmit')
submit.click()
account='xxxxxxxxxxxxx'
password='xxxxxxxxx'
url='https://bbs.idataloop.com/forum.php?mod=forumdisplay&fid=166'
browser=webdriver.Chrome()
browser.get(url)
time.sleep(2)
login_page(account,password)
print('页面跳转中...')
time.sleep(7)
python_basic(browser)
print('成功发布打卡帖')
更多爬虫实例请见 https://blog.youkuaiyun.com/weixin_39777626/article/details/81564819