今天又做了一个简单的数据爬虫,主要是对3D彩票的往期中奖数据进行爬虫,然而却发现实际并没有在大众可以访问的页面进行爬虫,而是授课老师在另一个内部网站进行的数据爬虫,所以也就并没有像老师所说的提前获取信息这一功能,因为不是所有的内部网站都是我可以获得的,所以这次就当做是一次温习,本次将爬取到的信息统一储存在excl文档中,因此需要导入新的包xlwt
1.创建工作表
f = xlwt.Workbook()
sheet1 = f.add_sheet("3D",cell_overwrite_ok=True)
#创建工作表
row0 = ["开奖日期","期号","个位数","十位数","百位数","单选","组选3","组选6","销售额","返奖比例"]
2.在工作表中存储首行信息
for j in range (0,len(row0)):
sheet1.write(0,j,row0[j])
3.获取网页
base_url ="填写网页地址"
def get_response(target_url):
return requests.get(url=target_url)
4.编写函数写入数据
def write(response):
html = etree.HTML(response.text)
nodes =html.xpath("//tr")
global i
for node in nodes[2:-1]:
sheet1.write(i, 0, node.xpath("./td[1]/text()"))
sheet1.write(i, 1, node.xpath("./td[2]/text()"))
sheet1.write(i, 2, node.xpath("./td[3]/em[1]/text()"))
sheet1.write(i, 3, node.xpath("./td[3]/em[2]/text()"))
sheet1.write(i, 4, node.xpath("./td[3]/em[3]/text()"))
sheet1.write(i, 5, node.xpath("./td[4]/text()"))
sheet1.write(i, 6, node.xpath("./td[5]/text()"))
sheet1.write(i, 7, node.xpath("./td[6]/text()"))
sheet1.write(i, 8, node.xpath("./td[7]/strong/text()"))
sheet1.write(i, 9, node.xpath("./td[8]/text()"))
i += 1
5.主程序执行
for j in range (1,20):
response = get_response(base_url.format(j))
write(response)
f.save("3D.xls")
6.最后就是发现的内部网页,经测试确实会比我们所能看到的网页数据更新快5~15min左右
base_url ="http://kaijiang.zhcw.com/zhcw/html/3d/list_{}.html"
#base_url ="http://kaijiang.zhcw.com/zhcw/html/ssq/list_{}.html"