用python实现自动点击页面增加点击量的小工具。
之前使用C++时,苦于找不到访问HTTP协议的API,不想涉及细节去考虑实现,幸好现在有Python自带的强大的urllib库,可以作为HTTP协议访问数据使用。
实现的代码原型:
这个程序都没有使用到类,就实现了网页自动点击。
开始导入了三个模块,urllib提供访问HTTP网页相关API,time模块主要使用sleep()函数使得程序不要连续执行,random模块是使得间隔时间随机化,主要是考虑不要被判定为恶意访问行为。
主要借这个机会来熟悉下urllib这个库吧!Python的官方文档上说urllib库主要用来从WWW页面上获取数据(Fetching the data),因此只提供了“读”操作。下面针对几个要点逐一说明。
1. 版本:自己使用的python-2.7,在3.0版本中urllib模块分成了urllib.request/parse/error三个部分,而且原先的函数urllib.urlopen()也变成了urllib2.urlopen;
2. urllib模块的一个基本函数是urlopen(URL),这个函数参数的URL可以指向一个本地文件,也可以指向一个网络文件;当指向网络文件时,自动调用socket同URL建立连接,这也是我们选择使用该函数获得点击网页效果的原因;函数返回一个类文件对象,但是只能支持文件I/O的读操作,如read()/readline()/readlines(),此外该对象还支持fileno()/info()/getcode()/geturl()/close()等方法;
3. info()函数用来返回目标页面返回的元数据,如果是HTTP协议,返回的是HTML页面的头部,如Content-Length/Content-Type等;如果是本地文件,则返回文件属性,如上次修改的时间等;
4. geturl()函数用来返回网页真正的URL,有时目标服务器会自动引导客户端到其他URL的时候可以用此函数获取导向的URL;
5. getcode():返回HTTP连接的状态代码;
6. urltrieve()方法用于下载某个页面,其第一个参数为目标URL,第二个参数为本地存储文件名,可选,默认不设置时会自动存储于临时文件夹,函数返回一个二元元祖(文件名,头部信息);
7. 可以使用urlcleanup()清空urltrieve()的缓存;
本节要点:
1. urllib库的使用,关键是urllib.urlopen(URL)与urllib.urltrieve(URL, [File]);
2. time模块,time.sleep(secs);
3. random模块,random.uniform()random()】