序言
人在绝大多数情况下,只要稍微有那么一点的退路,有那么一点余地,就可以成为逃避的借口和理由。努力装装样子,然后给自己一个台阶下,安慰自己说,“你看我已经很努力了,还是不行,那就算了吧”。
只有主动追求的东西才能到手;只要你想做,全世界都会帮你;只要你不想做,一只蚊子都能拦住你。虽说未来可期,但如果你连相信自己的勇气都没有,还有什么资格得到更好的呢。
-实战
这几天看到身边的朋友在玩儿股票;顺便查了查彩票的官网及操作步骤;看到那些以往的中奖号码; 脑海中突然有个新的想法;如果我把中奖的号码全部都抓取下来;在通过数据分析进行可视化;分析那些出现频率高的中奖数字。会不会有奇效呢!想的再多 不如尝试一下。
目标网站
快乐8 彩球数据
文章发布不了,想着会不会是这些号码的原因。于是打了马赛克;这些都是中奖的号码;大家可以登录该网站查看。
福彩3D 数据
通过 Chrome 浏览器右键检查查看 network 并对网站结构进行分析;大致上浏览了一下;数据的布局方式 基本上都差不多...... 挑兵挑将~ 随便挑一个😁
爬虫三部曲这里就不过多描述了; 不知道的同学可以看我之前写的文章。
为了使代码更加方便大家阅读 我将其业务逻辑用简单的函数封装起来,分为2步;看代码。。。
# 第一步:抓取中彩网数据
def requests_data():
pass
# 第二步: 处理数据 并存储
def save_data(tony_dict):
pass
if __name__ == '__main__':
tony_dict=requests_data()
save_data(tony_dict)
这样看起来是不是就简单明了。 不管三七二十一;首先我们先把数据给抓取下来 ~看法宝😎
import requests
# 第一步:抓取中彩网数据
def requests_data(index):
cookies = {
'Hm_lvt_12e4883fd1649d006e3ae22a39f97330': '1606980',
'_ga': 'GA1.2.1535259899.1606980613',
'PHPSESSID': 'ko9acne5fc09ag34tauema9dk5',
'Hm_lvt_692bd5f9c07d3ebd0063062fb0d7622f': '1606980',
'Hm_lpvt_692bd5f9c07d3ebd0063062fb0d7622f': '1606980',
'_gid': 'GA1.2.702530936.16077449',
'Hm_lpvt_12e4883fd1649d006e3ae22a39f97330': '1607745',
}
headers = {
'Connection': 'keep-alive',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',
'Accept': '*/*',
'Sec-Fetch-Site': 'same-site',
'Sec-Fetch-Mode': 'no-cors',
'Referer': 'https://www.zhcw.com/kjxx/3d/',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9',
}
params = (
('callback', 'jQuery1122035713028555611515_1607745050216'),
('transactionType', '10001001'),
('lotteryId', '2'),
('issueCount', '100'),
('startIssue', ''),
('endIssue', ''),
('startDate', ''),
('endDate', ''),
('type', '0'),
('pageNum', index),
('pageSize', '30'),
('tt', '0.7235300526774737'),
('_', '1607745050225'),
)
# 获取服务器返回数据
response = requests.get('https://jc.zhcw.com/port/client_json.php', headers=headers, params=params, cookies=cookies).content.decode('utf-8')
print(response)
if __name__ == '__main__':
for index in range(1, 10):
tony_dict=requests_data(index)
save_data(tony_dict)
运行程序的时候;就能够获取返回的数据内容了 ! 接下来就到了爬虫中最关键的一步;数据解析~ 首先先把需要的内容提取出来,这里埋一个小坑,大家尝试着试一下如何提取这个元素😁动动手~
我们在提取数据的时候也需要考虑这个数据应该通过什么样的存储方式进行保存。 这里我用的是 excel表格。
import xlwt
wb = xlwt.Workbook()
sheet= wb.add_sheet('福彩3D')
# 存储表头文件
row=["期号","开奖日期","开奖号码","总销售额(元)","直选(注数)","直选(单注奖金(元))",'组三(注数)','组三(单注奖金(元)','组六(注数)','组六(单注奖金(元)']
# 写入表头
for i in range(0,len(row)):
sheet.write(0,i,row[i])
# 保存
wb.save("福彩3D_版本2.xls")
当表头数据存储至excel之后 ;准备工作就已经OK了 ;接下来可以放心的做数据解析了 ;只需要将解析的数据添加到excel表格中就可以了。
i=1
# 第二步: 处理数据 并 存储
def save_data(tony_dict):
global i
for item in tony_dict:
sheet.write(i, 0, item['issue'])
sheet.write(i, 1, item['openTime'])
sheet.write(i, 2, item['frontWinningNum'])
sheet.write(i, 3, item['saleMoney'])
wd=item['winnerDetails']
print(wd)
i+=1
这样就把获取到的4个数据添加到excel表格了;后续其他的数据按照这种方式依次添加就行。大家可以锻炼一下!