专栏首页Urlteamselenium自动登录挂stackoverflow的金牌

selenium自动登录挂stackoverflow的金牌

最近玩起stackoverflow了,其中有一项成就是  Visit the site each day for 100 consecutive days. (Days are counted in UTC.)

还有持续30天可以拿银牌.写一个小程序每天登录一次吧.项目代码在github反爬虫技术汇总开源项目中:

https://github.com/luyishisi/Anti-Anti-Spider/tree/master/selement/so_gold

环境安装:

先装selenium2,哪种方式装都可以,我一般都是直接下载压缩包,然后用python setup.py install命令来装,

selenium 2.42.1的下载地址:https://pypi.python.org/pypi/selenium/2.42.1

然后下载phantomjs,https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-windows.zip,解压后可以看到一个phantomjs.exe的文件()linux下命令装即可

自动化程序设计

程序很简单,使用seleium这模块进行浏览器控制,更具密码帐号的表单进行填写即可.

本身是一个小问题但是具体部署起来就有点难度了.

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#-------------------------------------------------------------------------
#   程序:selenium_so.py
#   版本:0.1
#   作者:ly
#   日期:编写日期2016/11/23
#   语言:Python 2.7.x
#   系统: linux ubuntu 16.04 
#   操作:python selenuium_so.py
#   功能:结合crontab定时启动每天自动登录so网站,刷银牌用
#-------------------------------------------------------------------------
 
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time,sys
 
# 中文编码设置
reload(sys)
sys.setdefaultencoding('utf-8')
Type = sys.getfilesystemencoding()
 
#加载chrome 内核
driver = webdriver.Chrome()
#也可以选择无界面的phantomjs   这将决定你下方如何做定时启动的设置.
#driver = webdriver.PhantomJS()
#window下需要制定你phantomjs的位置.比如
#webdriver.PhantomJS(executable_path='C:\Users\Desktop\phantomjs-1.9.7-windows\phantomjs.exe')
 
#发起请求
driver.get("https://stackoverflow.com/users/login?ssrc=head&returnurl=http%3a%2f%2fstackoverflow.com%2fusers%2f7197440%2fa83533774%3ftab%3dtopactivity")
 
#获取用户名框并输入
elem = driver.find_element_by_xpath('//*[@id="email"]')
elem.send_keys("**")
 
#获取密码框并输入
elem = driver.find_element_by_xpath('//*[@id="password"]')
elem.send_keys("**")
 
#通过回车键进行登录  chrome下可用
#elem.send_keys(Keys.RETURN)
 
# 通过id选择到登录键 phantomjs下只能用这个<br>driver.find_element_by_id('submit-button').click()<br>
time.sleep(2)
 
#保存页面截图
name = time.ctime().replace(' ','-')+'.png'
driver.save_screenshot(name)
 
#print driver.page_source
time.sleep(2)
 
print 'end',time.ctime()
driver.close()

在linux环境下直接测试情况如下:

python selenuium_so.py

能自动化了那如何定时呢?

然后问题来了,如何定时运行呢?首先肯定会想到linux下的crontab 这个自动定时运行脚本的自带软件非常好用.写一个执行语句即可

我把文件都放在根目录下:

0 9 */1 * *  python ~/selenium_so.py >> log1.txt

这样.是每天的早上9点就自动运行,.,但是..你千万别这么弄因为这样是失败的.!!!

因为crontab是默认不可使用可视化界面的如果你用的是chrome的内核就不运行了.,所以说得这么处理.

区分两种结构,要么使用phantomjs来作为内核.首先你得安装phantomjs,因为他本身就是无界面的所以无障碍运行.

0 9 */1 * *  python ~/selenium_so.py >> log1.txt

如果你是使用chrome作为内核则需要给crontab加一句可视化的设置

0 9 */1 * * export DISPLAY=:0; python ~/selenium_so.py >> log1.txt

不光看这样好像答案出来的很容易,.,查了不少资料才找到这样的设置..

当然这样基本能跑了,但是问题的可能也还是有的,不要以为这个全世界最大的程序员问答社区会被这样刷爆了.

当!很偶尔会有验证码,来袭..

这个技术就太牛逼了,,我没法解决,不是说光点击那个我不是机器人的按钮就可以了,他会检测你在浏览器活动中多种行为指标,比如鼠标点击和移动,还有浏览记录等,来判断你是否是机器人..但是预防他出现的思路也是有的,.这个程序首先是在自己电脑上跑,对面绑定行为是根据ip地址的,你是同样的ip地址,也有同样的chrome浏览器,那么在日常生活中多用stackoverflow,这样正常人的比例就更高了.出现概率也低..

原创文章,转载请注明: 转载自URl-team

本文链接地址: selenium自动登录挂stackoverflow的金牌

  1. Scrapy-笔记一 入门项目 爬虫抓取w3c网站
  2. Scrapy笔记四 自动爬取网页之使用CrawlSpider
  3. Scrapy笔记五 爬取妹子图网的图片 详细解析
  4. 基于百度IP定位的网站访问来源分析的python实战项目–实践笔记零–项目规划
  5. 爬虫中关于cookie的运用
  6. 爱奇艺腾讯搜狐优酷四大视频网站反爬虫技术研究

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 将Linux的目录挂载到Windows系统上

    先来一篇文章,这篇文章介绍了很多的方法,不过我试了几个,都没成功(个(教)人(程)太笨(老))。 文章链接:https://www.jianshu.com/p...

    华创信息技术
  • Linux安装Mongodb教程

    官网下载地址:https://www.mongodb.com/download-center/community

    华创信息技术
  • 零基础Python教程036期 如何判断偶数?

    要求:用户输入一个整数,这是数代表随机(随机数范围1-100之间)产生的整数个数,输出结果为,随机产生的数中有几个数为偶数,这些数分别是什么?

    刘金玉编程
  • 学Linux到底学什么?

    我们常常听到很多人说要学学Linux或者被人告知说应该学学Linux,那么学Linux到底要学什么?

    帅地
  • 我是如何抛弃旧操作系统转投Linux的【Gaming】

    科技作者Jason Evangelho分享了他最喜欢的Linux发行版和关于在Linux上游戏的想法。

    Opensource在线文档
  • scp 服务器之间的拷贝命令

    scp是secure copy的缩写,scp是Linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

    华创信息技术
  • Cent os7修改主机名的方法

    “静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名。

    华创信息技术
  • 想不到吧?我是这样用Redis实现消息定时推送的!

    先说一下领劵中心的项目吧,这个项目就类似京东app的领劵中心,当然图是截取京东的,公司的就不截了。。。

    好好学java
  • Ubuntu 快捷截图

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    喜欢ctrl的cxk
  • C#通过邮箱验证来找回密码

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    喜欢ctrl的cxk

扫码关注云+社区

领取腾讯云代金券