行业资讯网欢迎您!!!

网站收藏健康资讯网联系我们

导航菜单

香港最快开奖现场结果开奖记录www开奖号码,用Python爬取...彩开奖信息,了解一下

通过研究发现,香港...彩每周二、四、六21:00开奖,中国体育...超级大乐透每周一、三、六21:30开奖,而我们要完成的目标是:

1、自动完成安装工作

2、在周二、四、六的晚上23:00爬取香港...彩开奖数据,在周一、三、六的晚上23:00爬取中国体育...超级大乐透开奖数据。

1工具

2具体方法

1、使用python2.7编写爬取脚本

这里除了正常的爬取操作,还增加了独立的参数设定。如果没有参数,爬取的数据就在当前目录下;如果有参数,可以设定保存目录、保存文件名后缀。这样的话,这个脚本既可以单独使用,也可以配合sh定时任务使用。

香港...彩爬取代码grab500_ssq.py内容:

# -*- coding:utf-8 -*-

import re

import urllib

import time

import sys

datapath = sys.path[0]

datasuffix = txt

if (len(sys.argv)>1):

datapath = sys.argv[1]

datasuffix = sys.argv[2]

def getHtml(url):

html = urllib.urlopen(url)

return html.read()

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(datapath /lot_500_ssq. datasuffix, a) as f:

f.write(time.strftime(%Y-%m-%d,time.localtime(time.time())) ":" outstr[:-1] )

大乐透爬取代码grab500_dlt.py内容:

# -*- coding:utf-8 -*-

import re

import urllib

import time

import sys

datapath = sys.path[0]

datasuffix =txt

if(len(sys.argv)>1):

datapath = sys.argv[1]

datasuffix = sys.argv[2]

defgetHtml(url):

html = urllib.urlopen(url)

return html.read()

html = getHtml("http://zx.500.com/dlt/")

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(datapath /lot_500_dlt. datasuffix,a)as f:

f.write(time.strftime(%Y-%m-%d,time.localtime(time.time())) ":" outstr[:-1] )

2、编写一个执行的sh脚本

我们需要编写执行python的sh脚本bwb_lottery_everyday.sh,要注意的是sh的date获取的星期天值是0而不是7,而crontab则可以设定0或者7。

#!/bin/sh

basepath=$(cd `dirname $0`; pwd) #shells dir

datapath=$basepath/lotterydata #shells datadir

datasuffix=txt #datasuffix

a=`date -d "${date}" %w`

if [ $a -eq 1 ] || [ $a -eq 3 ] || [ $a -eq 6 ]; then

python "${basepath}/grab500_ssq.py" $datapath $datasuffix

elif [ $a -eq 2 ] || [ $a -eq 4 ] || [ $a -eq 0 ]; then

python "${basepath}/grab500_dlt.py" $datapath $datasuffix

3、编写一个主sh脚本

编写一个主要的sh脚本bwb_lottery_main.sh,执行清理和设定的工作。需要注意的是,这里直接使用了系统的/etc/crontab文件来达到周期执行的目的,其实并不太好,但crontab -e的方法很难自动化,所以只能设定为系统任务。

#!/bin/sh

cronfile="/etc/crontab" #debian cronfile

basepath=$(cd `dirname $0`; pwd) #shells dir

datapath=$basepath/lotterydata #shells datadir

datasuffix=txt #datasuffix

crontaskname="bwb_lottery_everyday.sh" #shells name

crontasktime="0 23 * * 1-4,6-7" #crontab task run time,default everyday except friday 23:00

echo "checking.."

if [ ! -f ${cronfile} ]; then

echo "crontab file $cronfile doesnt exsits. please check file or modify shell setting and run shell again."

exit 1

pyver=`python -V 2>&1|awk {print $2}|awk -F . {print $1}`

if [ $pyver != 2 ]; then

echo "python2(.7) is needed."

exit 1

echo "writing crontab file.."

if [ `grep -c "${crontaskname}" ${cronfile}` -eq 0 ]; then

echo "${crontasktime} root ${basepath}/${crontaskname}">>${cronfile}

else

sed -i "s#^.*${crontaskname}.*#${crontasktime} root ${basepath}/${crontaskname}#" ${cronfile}

/etc/init.d/cron restart

echo "making data dir.."

if [ ! -d "${datapath}" ]; then

mkdir ${datapath}

else

if [ ! -d "${datapath}/bak" ]; then

mkdir "${datapath}/bak"

else

mv ${datapath}/*.${datasuffix} ${datapath}/bak/ 2>/dev/null

echo "changing permission.."

chmod x "$basepath/$crontaskname"

chmod w -R $datapath

echo "finished!"

我们最后只需要执行这个主脚本,就能一键自动完成...爬虫的布置。

完整的项目代码已经上传到github上去了~

链接:

https://github.com/BEWINDOWEB/lotterygrabber

欢迎提交watch、star、fork素质三连和提交issue。

为你推荐以下文章

扫码关注我的微信公众号【深度学习和Python语言学习笔记】

▲长按图片识别二维码关注

版权声明:本站内容由互联网用户投稿自发贡献或转载于互联网,文章观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2024tuiguang@gmail.com举报,一经查实,本站将立刻删除。

合作:2024tuiguang@gmail.com