# -*- coding: UTF-8 -*-
import requests
from bs4 import BeautifulSoup
import xlwt
import time #获取第一页的内容
def get_one_page(url):
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36'
}
response = requests.get(url,headers=headers)
if response.status_code == 200:
return response.text
return None #解析第一页内容,数据结构化
def parse_one_page(html): soup = BeautifulSoup(html,'lxml')
i = 0
for item in soup.select('tr')[2:-1]: yield{
'time':item.select('td')[i].text,
'issue':item.select('td')[i+1].text,
'digits':item.select('td em')[0].text,
'ten_digits':item.select('td em')[1].text,
'hundred_digits':item.select('td em')[2].text,
'single_selection':item.select('td')[i+3].text,
'group_selection_3':item.select('td')[i+4].text,
'group_selection_6':item.select('td')[i+5].text,
'sales':item.select('td')[i+6].text,
'return_rates':item.select('td')[i+7].text
} #将数据写入Excel表格中
def write_to_excel():
f = xlwt.Workbook()
sheet1 = f.add_sheet('3D',cell_overwrite_ok=True)
row0 = ["开奖日期","期号","个位数","十位数","百位数","单数","组选3","组选6","销售额","返奖比例"]
#写入第一行
for j in range(0,len(row0)):
sheet1.write(0,j,row0[j]) #依次爬取每一页内容的每一期信息,并将其依次写入Excel
i=0
for k in range(1,247):
url = 'http://kaijiang.zhcw.com/zhcw/html/3d/list_%s.html' %(str(k))
html = get_one_page(url)
print('正在保存第%d页。'%k)
#写入每一期的信息
for item in parse_one_page(html):
sheet1.write(i+1,0,item['time'])
sheet1.write(i+1,1,item['issue'])
sheet1.write(i+1,2,item['digits'])
sheet1.write(i+1,3,item['ten_digits'])
sheet1.write(i+1,4,item['hundred_digits'])
sheet1.write(i+1,5,item['single_selection'])
sheet1.write(i+1,6,item['group_selection_3'])
sheet1.write(i+1,7,item['group_selection_6'])
sheet1.write(i+1,8,item['sales'])
sheet1.write(i+1,9,item['return_rates'])
i+=1 f.save('3D.xls') def main():
write_to_excel() if __name__ == '__main__':
main()

最新文章

  1. linux cat 命令详解
  2. 实时控制软件设计 第二次作业 myRobot
  3. Spark在Yarn上运行Wordcount程序
  4. rsync传输性能测试总结 转
  5. Xib文件的使用
  6. iOS开发--完整项目
  7. Unity4向上(Unity5)兼容PlayerPrefs的数据存储
  8. CString 操作指南
  9. Load PE from memory(反取证)(未完)
  10. VPN工作原理
  11. MyBatis从入门到放弃六:延迟加载、一级缓存、二级缓存
  12. 201521123067 《Java程序设计》第12周学习总结
  13. 自学Python4.2 迭代器、生成器
  14. vue中引入babel步骤
  15. AI2(App Inventor 2)离线版服务器网络版
  16. js 金额用逗号隔开
  17. Python json模块dumps loads
  18. 23种设计模式之责任链模式(Chain of Responsibility)
  19. RabbitMQ 初探
  20. CSS实现太极图(1个div实现)

热门文章

  1. day34—JavaScript实现DOM操作
  2. VS代码自动补全功能
  3. 牛顿法求极值及其Python实现
  4. Reading query string values in JavaScript
  5. 【Python—参数】*arg与**kwargs参数的用法
  6. redis 不可重入分布式锁(setNx()和getset()方法实现)
  7. HDU 6386 Age of Moyu (最短路+set)
  8. 问题处理——"无法导航到插入符号下的符号"
  9. sqlite查询语句
  10. Python Web开发:使用Django框架创建HolleWorld项目