当前位置: 首页 > news >正文

抖音推广运营/太原seo哪家好

抖音推广运营,太原seo哪家好,有一个外国网站专门做街头搭讪,建设网站公司电话号码在本篇博客中,我们将使用selenium模拟登录新浪微博,破解其登陆时的图片验证码。微博和简书、b站登录有所不同,后两个每次登录都会有验证码,微博有时有有时可能没有,所以写法稍有不同。 我们需要使用验证码识别服务平台…

在本篇博客中,我们将使用selenium模拟登录新浪微博,破解其登陆时的图片验证码。微博和简书、b站登录有所不同,后两个每次登录都会有验证码,微博有时有有时可能没有,所以写法稍有不同。

我们需要使用验证码识别服务平台。超级鹰,来帮助我们破解图片验证码。下面的chaojiying.py文件用于调用超级鹰服务,帮助我们破解点触或图片验证码,直接照搬就好了:

import requests
from hashlib import md5#使用超级鹰来进行图片验证码和点触验证码的识别
class Chaojiying(object):def __init__(self, username, password, soft_id):self.username = usernameself.password = md5(password.encode('utf-8')).hexdigest()self.soft_id = soft_idself.base_params = {'user': self.username,'pass2': self.password,'softid': self.soft_id,}self.headers = {'Connection': 'Keep-Alive','User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',}def post_pic(self, im, codetype):"""im: 图片字节codetype: 题目类型 参考 http://www.chaojiying.com/price.html"""params = {'codetype': codetype,}params.update(self.base_params)files = {'userfile': ('ccc.jpg', im)}r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files,headers=self.headers)return r.json()def report_error(self, im_id):"""im_id:报错题目的图片ID"""params = {'id': im_id,}params.update(self.base_params)r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)return r.json()

程序主体框架:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException,NoSuchElementException
from WeiBoLogin.chaojiying import Chaojiying
import requests
from requests import RequestException
#微博用户名和密码
USERNAME = ''
PASSWORD = ''#超级鹰用户名、密码、软件ID(需要注册)
CHAOJIYING_USERNAME = ''
CHAOJIYING_PASSWORD = ''
CHAOJIYING_SOFT_ID = 
CHAOJIYING_KIND = 1902 #验证码类型 4-6位英文数字组合 破解图片验证码 具体可见官网#破解图片验证码 登陆微博
class WeiboLogin():def __init__(self):self.url = 'https://www.weibo.com'self.browser = webdriver.Chrome()self.wait = WebDriverWait(self.browser, 20)self.username = USERNAMEself.passward = PASSWORDself.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD, CHAOJIYING_SOFT_ID)def __del__(self):self.browser.close()def get_click_image(self,name='captcha_weibo.png'):passdef login_successfully(self):passdef get_click_button(self):passdef open(self):passdef login(self):# 打开登陆界面 输入用户名和密码self.open()#找到并点击登陆按钮button = self.get_click_button()button.click()if self.login_successfully():  # 有时可能不需要验证码print("登陆成功")else:# 获取图片验证码 图片image = self.get_click_image()# 识别图片验证码result = self.chaojiying.post_pic(image, CHAOJIYING_KIND)print(result)# 判断是否成功# 找到验证码输入框verifycode = self.wait.until(EC.presence_of_element_located((By.NAME, 'verifycode')))# 输入验证码verifycode.send_keys(result['pic_str'])# 找到并点击登陆按钮button = self.get_click_button()button.click()if self.login_successfully():print('登录成功')else:self.chaojiying.report_error(result['pic_id'])self.login()if __name__ == '__main__':login = WeiboLogin()login.login()

打开登录界面,输入用户名和密码:

    def open(self):"""打开登陆界面 输入用户名和密码:return:"""self.browser.get(self.url)# 找到用户名和密码输入框'''<input id="loginname" type="text" class="W_input" maxlength="128" autocomplete="off" action-data="text=邮箱/会员帐号/手机号" action-type="text_copy" name="username" node-type="username" tabindex="1">'''username = self.wait.until(EC.presence_of_element_located((By.ID,'loginname')))'''<input type="password" class="W_input" maxlength="24" autocomplete="off" value="" action-type="text_copy" name="password" node-type="password" tabindex="2">'''password = self.wait.until(EC.presence_of_element_located((By.NAME,'password')))# 输入用户名和密码username.send_keys(self.username)password.send_keys(self.passward)

找到登录按钮:

  def get_click_button(self):"""找到登陆按钮:return:"""'''<a href="javascript:void(0)" class="W_btn_a btn_32px" action-type="btn_submit" node-type="submitBtn" suda-data="key=tblog_weibologin3&amp;value=click_sign" tabindex="6"><span node-type="submitStates">登录</span></a>'''button = self.wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'.W_btn_a')))return button

判断登录是否成功,如果成功会有消息提示:

  def login_successfully(self):"""判断登陆是否成功:return:"""'''<em class="W_ficon ficon_mail S_ficon">I</em>'''try:return bool(WebDriverWait(self.browser,5).until(EC.presence_of_element_located((By.CSS_SELECTOR,'.ficon_mail'))))except TimeoutException:return  False

如果登录不成功,则获取图片验证码:

   def get_click_image(self,name='captcha_weibo.png'):''':param name::return:''''''<img width="95" height="34" action-type="btn_change_verifycode" node-type="verifycode_image" src="https://login.sina.com.cn/cgi/pin.php?r=88815771&amp;s=0&amp;p=gz-66c0488ef9191010d88bea8c9f3a09fdf3bf">'''try:element = self.wait.until(EC.presence_of_element_located((By.XPATH,'//img[@node-type="verifycode_image"]')))verifycode_image = element.get_attribute('src')  # 得到图片链接verifycode_image = get_html(verifycode_image).content #获取图片内容with open(name, 'wb') as f:f.write(verifycode_image)return verifycode_imageexcept NoSuchElementException:print("")return None

完整项目

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

http://www.jmfq.cn/news/5215411.html

相关文章:

  • 张家港做政府网站的公司/东莞seo关键词排名优化排名
  • 宝塔做网站/郑州见效果付费优化公司
  • 网站建设 技术 哪些内容/数据分析师要学什么
  • wordpress页面添加新闻/pc网站优化排名软件
  • 空间坐标系做图网站/seo快速排名代理
  • 建设工程材料登记备案申请网站/全网搜索引擎
  • 注册城乡规划师值钱吗/澳门seo推广
  • 西安网站制作平台/新浪新闻疫情
  • 专业做网站公司济南/网络广告投放网站
  • 永康城乡建设局网站/宣传软文范例
  • 个人网站设计实验原理/电商营销策划方案范文
  • 个人电脑做网站打不开数据库/营销推广的工具有哪些
  • jsp怎么做视频网站/北京seo专员
  • app模板下载网站/电商平台哪个最好最可靠
  • 济南手机建站模板/中国十大公关公司排名
  • 中国建设银行网站特色/免费ip地址代理
  • 微信公众号登录wordpress网站吗/虞城seo代理地址
  • html网站如何做seo/做引流推广的平台600
  • 湖州网站建设培训/谷歌广告代理
  • 沂南做网站/怎么做网站推广
  • 邯郸wap网站制作/近期出现的病毒叫什么
  • 网站首页布局有哪些/百度优化大师
  • 2012r2做网站/广告竞价
  • 如何设置网站域名/网站建设公司企业网站
  • pc网站制作/优化提升
  • 建网站系统平台/公众号推广平台
  • 建设网站可选择的方案有/淘宝店铺买卖交易平台
  • 北京城市雕塑建设管理办公室网站/网上推广怎么做
  • 新手做网站怎么上传系统/佛山网站建设制作公司
  • 盐城网站开发效果/搜索引擎优化的缺点包括