python+selenium百度贴吧自动签到
#-*- coding:utf-8 -*-
from selenium import webdriver
import time
import os
import random
from selenium.webdriver.common.action_chains import ActionChainsbrowser = webdriver.Chrome()# 最大等待加载完的时间
max_loading = 600
# 延时随机n秒执行
wait_time = random.randint(3, 6)"""
注意:要将原来打开的谷歌浏览器关闭干净
"""# 默认情况下selenium打开的是新的chrome,不会使用原有的cookie,如果想不要每次都输入账号、密码、验证码,就做相关设置
profile_dir = 'C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\User Data'
chrome_options = webdriver.ChromeOptions()
# 增加该设置,防止chrome出现:chrome正受到自动测试软件的控制。使得不能继续访问
chrome_options.add_argument('disable-infobars')
chrome_options.add_argument("user-data-dir=" + os.path.abspath(profile_dir))
# 不加载图片 1.加载,2.不加载
prefs = {"profile.managed_default_content_settings.images": 1}
chrome_options.add_experimental_option("prefs", prefs)browser = webdriver.Chrome(chrome_options=chrome_options)
browser.get("https://tieba.baidu.com/")
# browser.maximize_window()
# js = "window.open('http://www.wlzhys.com')"
# browser.execute_script(js)
# browser.quit()
# browser.close()# # 获取更多吧中的元素的高度
# browser.execute_script("var eleDiv = document.getElementById('likeforumwraper');alert(eleDiv.innerHTML)")# 移动鼠标到"查看更多"元素上
checkMore = browser.find_element_by_xpath('//*[@id="moreforum"]/a')
ActionChains(browser).move_to_element(checkMore).perform()# 获取更多吧中的元素的高度
# browser.execute_script("var eleDiv = document.getElementsByClassName('j_panel_content');alert(eleDiv.innerHTML)")# time.sleep(wait_time)# 获取那8个显示出来的吧的链接元素
tags = browser.find_elements_by_class_name('u-f-item')# 遍历它们
for tag in tags:# 获取元素的高度# print(tag.size['height'])# exit()# tagHref = tag.get_attribute("href")# print(tagHref)tag.click()# 直到加载完,最多等待10秒钟browser.implicitly_wait(10)# 获取所有窗口windows = browser.window_handles# 切换到第二个窗口browser.switch_to.window(windows[-1])# 点击签到sign_button = browser.find_element_by_xpath('//*[@id="signstar_wrapper"]/a')# 防止点一次还不够,要点两次的情况# 直到加载完,最多等待10秒钟browser.implicitly_wait(max_loading)time.sleep(wait_time)sign_button.click()sign_button.click()# time.sleep(wait_time)# 关闭当前窗口browser.close()# 切换回最初的窗口browser.switch_to.window(windows[0])# time.sleep(wait_time)# 移动鼠标到"查看更多"元素上
checkMore = browser.find_element_by_xpath('//*[@id="moreforum"]/a')
ActionChains(browser).move_to_element(checkMore).perform()# js获取元素
js = '''//获取目标元素
var EleId = document.getElementById('forumscontainer');
var targetEle = EleId.firstElementChild.firstElementChild
//下拉滚动50像素
targetEle.scrollTop='''# 获取查看更多里的吧的标签,遍历签到
moreTags = browser.find_elements_by_xpath('//*[@id="forumscontainer"]/div/div[1]/a')
# print(len(moreTags))
# exit()
# 每点完6个,上拉一定距离(防止按钮没出现,点不到的情况)
i = 0
for moreTag in moreTags:# 获取元素高度# print(moreTag.size)i = i + 1moreTag.click()# 直到加载完,最多等待10秒钟browser.implicitly_wait(max_loading)# 获取所有窗口windows = browser.window_handles# 切换到第二个窗口browser.switch_to.window(windows[-1])# 点击签到sign_button = browser.find_element_by_xpath('//*[@id="signstar_wrapper"]/a')# 防止点一次还不够,要点两次的情况# 直到加载完,最多等待10秒钟browser.implicitly_wait(max_loading)time.sleep(wait_time)sign_button.click()sign_button.click()# time.sleep(wait_time)# 关闭当前窗口browser.close()# 切换回最初的窗口browser.switch_to.window(windows[0])# 每6个下拉滚动50像素if i % 6 == 0:num = i // 6print(num)# 若除以6是整数,则下拉if isinstance(num, int):browser.execute_script(js + str(num * 50))print(num)# browser.execute_script("var EleId = document.getElementById('forumscontainer');console.log(50)")# print(i)# time.sleep(wait_time)# print(tags)
# print(tags[0])# 恢复为加载图片
prefs = {"profile.managed_default_content_settings.images": 1}
chrome_options.add_experimental_option("prefs", prefs)time.sleep(wait_time)
转载于:https://blog.51cto.com/5660061/2175729
相关文章:

图像配准----NCC
在用Harris算子对图像进行角点提取后,两幅图像得到的角点个数不一定相等,这时就要先对它们进行处理,得出一一对应的角点对。 归一化互相关(Normalized Cross Correlation method, NCC)匹配算法是一种经典的统计匹配算法,通过计算模…

Ext Scheduler Web资源甘特图控件
原文来自 http://www.fanganwang.com/Product-detail-item-1430.html欢迎转载。 关键字: 资源甘特图又叫负荷图,其纵轴不再列出活动,而是列出整个部门或特定的资源。 Ext Scheduler资源甘特图是基于Extjs核心库的开发的,基于WEB浏…

50行代码教AI实现动作平衡 | 附完整代码
作者 | Mike Shi译者 | linstancy责编 | Jane出品 | AI科技大本营(id:rgznai100)【导读】本文将为大家展示如何通过 Numpy 库和 50行 Python 代码,使用标准的 OpenAI Gym平台创建智能体 (agent),就教会机器处理推车杆问…

图像配准----双向匹配
由Harris提取出的两幅图像的角点个数或对应关系并不是一一对应的。为了后续的配准,需要先对提取出的角点进行初始匹配,双向匹配方法是比较简单的一种方法,它实现容易。 设参考图像特征点集为X {x1, x2, …,xp}, p > 3;待配准图…
[专业亲测]Ubuntu16.04安装Nvidia显卡驱动(cuda)--解决你的所有困惑【转】
本文转载自: 因为要做毕设需要安装caffe2,配置cuda8.0,但是安装nvidia驱动真的是把我难倒了,看了很多篇博文都没有效果,现在我自己重新总结了下几种 安装方法(亲测有效),希望能帮到大…

IE下javascript的console方法
IE下javascript的console方法 FireFox 和 Chrome 下调试JS都有console,IE6下没有。特用此办法来兼容IE6. <br /><pre lang‘‘html‘‘> <!doctype html> <html> <head> <meta charset‘‘utf-8‘‘/> </head> <body&…

图像配准----RANSAC
对角点进行初始匹配后,所选定的角点并不能保证全部是正确的点,也可能有误点,因此,还需要进一步对所选定的角点进行精确匹配。 RANSAC(RANdom Sample And Consensus)方法是由Fischler和Bolles提出的一种鲁棒性的参数估计方法。它的…

教你用OpenCV实现机器学习最简单的k-NN算法
前言:OpenCV 的构建是为了提供计算机视觉的通用基础接口,现在已经成为经典和最优秀的计算机视觉和机器学习的综合算法工具集。作为一个开源项目,研究者、商业用户和政府部门都可以轻松利用和修改现成的代码。k-NN算法可以认为是最简单的机器学…

div 相同属性提取
把样式名或id写在一起,用逗号隔开 <!DOCTYPE html><html lang"en"><head> <meta charset"UTF-8"> <title>信息详情</title> <style type"text/css"> #box-1, #box-2, #box…

ehcache 简介
hCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 下图是 Ehcache 在应用程序中的位置: ehcache部署起来很简单,主要分两步: 1.首先要给他写个核心配置XML文件 <ehca…

【leetcode】30. Substring with Concatenation of All Words
题目如下: 解题思路:本题题干中有一个非常关键的前提,就是words中的所有word的长度一样,并且都要被使用到。所以,我们可以把输入的s按word的长度进行等分,以s "barfoothefoobarman",words [&qu…

图像配准----SIFT
SIFT算子(Scale Invariant Feature Transform)是David Lowe提出的一种基于尺度空间的、对图像缩放、旋转甚至仿射变换保持不变性的图像局部特征描述算子。SIFT特征提取的是极其细微、大量的特征点,即时少数物体、物体的一小部分也可以产生大量特征向量。 SIFT算法如…

终于把微软BING搜索-SPTAG算法的原理搞清了
作者 | beyondma转载自 CSDN 博客近日,微软在GitHub上开源了其BING的搜索算法SPTAG,github地址:https://github.com/microsoft/SPTAG。这个算法笔者简单看了一下,的确是很有价值可以看大家介绍下,这种称为SPTAG &#…

把握每天的第一个钟头
当我十七岁的时候,我读到一段话,它是这么说的:“如果你把每天都当做最后一天来活着,那么有一天你将会是对的。”这句话让我留下了深刻的印象,从那时候开始,过去的 33 年来,我每天早上都对着镜子…

向量叉积计算法
如果向量A为{a, b, c},向量B为{m, n, p},如何计算向量A与向量B的叉积呢? 用行列式: |i j k| |a b c| |m n p| (bp-cn)i (mc-pa)j (an-bm)k 例如用matlab实现两个向量的叉积: a [1 2 3]; …

你是个成熟的C位检测器了,应该可以自动找C位了
作者 | 李翔转载自视说AI(ID:techtalkai)写在前面C位是近年网络上一个比较热门的词,最早来源于DOTA等游戏领域,是核心位置(Carry位)的简称,代表的是能够在游戏前中期打钱发育并在游戏后期带领队…

Data Artisans发布支持ACID事务的流式处理框架Streaming Ledger
data Artisans宣布推出Streaming Ledger,它扩展了Apache Flink,提供了跨表、键和事件流执行可序列化ACID事务的功能。这项正在申请专利的技术是Flink的专有附加技术,超越了当前一次只能在一个键上实现一致性的标准。\\在发布Streaming Ledger…

The Life Cycle of a Servlet
为什么80%的码农都做不了架构师?>>> Servlet的生命周期由Servlet容器管理,包含如下几个步骤: 1. 装载Servlet类; 2. 创建Servlet的实例; 3. 调用Servlet的init()方法; 4. 调用Servlet的service()方法; 5. 调用Servlet的destroy()…

矩阵奇异值分解
转自:http://www.madio.net/forum-redirect-goto-nextnewset-tid-47409.html 奇异值分解是线性代数中一种重要的矩阵分解,在信号处理、统计学等领域有重要应用。定义:设A为m*n阶矩阵,AHA的n个特征值的非负平方根叫作A的奇异值。记…

智课雅思词汇---十、pend是什么意思
智课雅思词汇---十、pend是什么意思 一、总结 一句话总结:【词根含义】:悬挂,垂;称量;支付 词根:-pend-, -pens- 【词根含义】:悬挂,垂;称量;支付 【词根来源】:来源于拉丁语动词pendeo, pendere, pependi, - (悬挂,下…

新技术“红”不过十年,半监督学习为什么是个例外?
作者 | 严林来源 | 授权转载自知乎(ID:严林)这一波深度学习的发展,以2006年Hinton发表Deep Belief Networks的论文为起点,到今年已经超过了10年。从过往学术界和产业界对新技术的追捧周期,超过10年的是极少数。从深度学…

常用Linux路由命令(route、ip、ifconfig等等)
第一组命令: ifconfig, ifup, ifdown 1) ifconfig 作用:手动启动、观察与修改网络接口的相关参数,包括IP地址以及MTU大小等。 例1.1:暂时修改IP地址 # ifconfig eth0 192.168.100.100 例1.2:修改IP地址、掩码和MTU # i…

洛谷P1074 靶形数独(跳舞链)
传送门 坑着,等联赛之后再填(联赛挂了就不填了233) 1 //minamoto2 #include<iostream>3 #include<cstdio>4 #include<cstring>5 using namespace std;6 #define getc() (p1p2&&(p2(p1buf)fread(buf,1,1<<21,…

直播写代码|英伟达工程师亲授如何加速YOLO目标检测
NVIDIA TensorRT是一种高性能深度学习推理优化器和运行时加速库,可以为深度学习推理应用程序提供低延时和高吞吐量。通过TensorRT,开发者可以优化神经网络模型,以高精度校对低精度,最后将模型部署到超大规模数据中心、嵌入式平台或…

OpenCV的cvLoadImage函数
转自:http://lijian2005lj.blog.163.com/blog/static/2569113720091111104856644/ 一直不太懂得cvLoadImage的第二个参数,今天知道,原来第二个参数是指定读入图像的颜色和深度。 指定的颜色可以将输入的图片转为3信道(CV_LOAD_IMAGE_COLOR)也…

DX11 preprocessor Dynamic shader linkage
(参照例子DXSDK sample:DynamicShaderLinkage11) 一、preprocessor 实现shader静态分支的经典方法,代码示例如下 shader中(如果显卡不支持DX11,则STATIC_PERMUTE为True): #if !defined( STATIC_PERMUTE )iB…

OpenCV中与matlab中相对应的函数
1、matlab中的imread相当于OpenCV中的cvLoadImage(imageName, CV_LOAD_IAMGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR):读出的图像信息保持了原有图像的信息(包括通道信息和位深信息); rgb2gray相当于cvLoadImage(imageName, CV_LOAD_IMAGE_GRAYSCALE)&…

AI假新闻满天飞,打假神器GROVER帮你看清一切
最近AI换脸术与AI假新闻叠加在一起,造成了不少乌龙事件,比如最近美国的议长南希佩洛西就的一段醉酒视频就在Facebook上流传甚广,视频中的议长明显是状态晕沉,醉意十足,不过这后来被证明是一段是由deepfake生成的假视频…

NYOJ 93
汉诺塔(三) 时间限制:3000 ms | 内存限制:65535 KB难度:3描述在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝…

C/C++中二维数组作函数形参时,调用函数时,可传递的实参类型的小结
转自:http://blog.163.com/tianhityeah/blog/static/165747821201052195212719/ #include<iostream>using namespace std;int fun(int a[][3],int n) // 其中二维数组形参必须确定数组的第二维的长度,第一维长度可以不定//int fun(int (*a)[…