很多以前的双色球信息都不能看了,因此可以每2天爬取一次双色球信息,保存下来,以后使用。
注意合法性:
- 只爬公开、非敏感、非版权数据
- 不突破防护、不干扰运营、遵守robots.txt规则
- 仅供学习使用
工具
- python2.7
- 一台debian 8.9的服务器
具体方法
1、使用python2.7编写爬取脚本
- 抓取网页html
- 编写正则
- 匹配网页html和需要的正则信息,提取信息保存为字符串
- 把结果写入文件(你也可以写入数据库)
python
# -*- 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文件,因为在它的目录找不到。
shell
#!/bin/sh
cd /home/lottery
python grab500_ssq.py保存为/home/lottery/main.sh
3、设置crontab定时执行
- 修改sh文件权限为可执行(否则会报permission deny错误):
shell
chmod 755 /home/lottery/main.sh- 编辑crontab
shell
vi /etc/crontab设置内容为:每2天晚上的22点14分执行一次main.sh
shell
14 22 */2 * * root /home/lottery/main.sh- 重启crontab使命令生效
shell
/etc/init.d/cron restart
# 提示:[ ok ] Restarting cron (via systemctl): cron.service.结果
每隔2天,就会进行一次爬取:
shell
cat lot_500_ssq.txt
2018-03-14:18028,03,08,11,14,18,23,16时间:期数,红球,蓝球。
同样的方法可以爬取体彩的大乐透。



粤公网安备44030602007943号