一、前言
很多以前的双色球信息都不能看了,因此可以每2天爬取一次双色球信息,保存下来,以后使用。
二、工具
python2.7
一台debian 8.9的服务器
三、具体方法
1、使用python2.7编写爬取脚本
这里爬取的是彩票500网站的信息,步骤如下:
(1)抓取网页html
(2)编写正则
(3)匹配网页html和需要的正则信息,提取信息保存为字符串
(4)把结果写入文件(你也可以写入数据库)
# -*- coding: utf-8 -*-
import re
import urllib
import time
def getHtml(url):
html = urllib.urlopen(url)
return html.read()
#获取网页html内容
html = getHtml("http://zx.500.com/ssq/")
#比对需要的信息
reg = ['<dt>([0-9]\d*).*</dt>']#期数
reg.append('<li class="redball">([0-9]\d*)</li>')#红球
reg.append('<li class="blueball">([0-9]\d*)</li>')#蓝球
outstr = "";
for i in range(len(reg)):
page = re.compile(reg[i])#生成正则
rs = re.findall(page,html)#匹配网页中的正则字符串
for j in range(len(rs)):#获得结果
outstr+= rs[j] + ","
#print time.strftime('%Y-%m-%d',time.localtime(time.time()))+":"+outstr[:-1]
#把结果写入文件
with open('lot_500_ssq.txt', 'a') as f:
f.write(time.strftime('%Y-%m-%d',time.localtime(time.time()))+":"+outstr[:-1]+'\n')
编写完成后,保存为/home/lottery/grab500_ssq.py
2、编辑一个sh脚本
注意这里的cd /home/lottery
是必须的,是你python文件存在的位置,如果不写这个,crontab执行不了这个python文件,因为在它的目录找不到。
#!/bin/sh
cd /home/lottery
python grab500_ssq.py
保存为 /home/lottery/main.sh
3、设置crontab定时执行
(1)修改sh文件权限为可执行(否则会报permission deny错误):
chmod 755 /home/lottery/main.sh
(2)编辑crontab
vi /etc/crontab
设置内容为:每2天晚上的22点14分执行一次main.sh
14 22 */2 * * root /home/lottery/main.sh
(3)重启crontab使命令生效
/etc/init.d/cron restart
提示:[ ok ] Restarting cron (via systemctl): cron.service.
四、结果
每隔2天,就会进行一次爬取:
cat lot_500_ssq.txt
2018-03-14:18028,03,08,11,14,18,23,16
时间:期数,红球,蓝球。
同样的方法可以爬取体彩的大乐透。