数据从2004年1月到2019年9月
import json
from lxml import etree
import requests
import time
# 由于之前将网页上需要的连接都爬取保存了,这里就直接读取
with open('test.txt','r') as f:
url_set=f.read()
# 数据分割
list_url = list(url_set.split('\n'))
# 倒序(之前爬取是从新到旧)
url_list=list_url[::-1]
# 请求头
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'}
# 计数用
bb=0
# 函数爬取单页
def get_url(url_,headers):
response = requests.get(url=url_,headers=headers)
global bb
bb+=1
print("正在爬取{}的数据".format(url_))
if response.status_code == 200:
return response.content.decode('gbk')
return None
# 标签选择函数
def sl_num(html):
html = etree.HTML(html)
number = html.xpath('//div[@class="ball_box01"]/ul/li/text()')
seals = html.xpath('//div[@class="kjxq_box02"]//span[@class="cfont1 "]//text()')
group = html.xpath('//div[@class="kjxq_box02"]//font[@class="cfont1"]/text()')
text_num = html.xpath('//div[@class="kj_main01"]//tr[@align="center"]//div/text()')[2][4:]
date_num = html.xpath('//div[@class="kjxq_box02"]//span[@class="span_right"]/text()')[0][5:16]
yield str(date_num)+','+str(number)+","+str(seals)+","+str(group)+","+str(text_num)
# 数据写入函数
def waite_data(data_set):
with open('3d.txt','a') as f:
print("正在写入数据..")
f.write(data_set+'\n')
global bb
if bb>100:
time.sleep(10)
bb=0
if __name__ == '__main__':
# 遍历连接列表爬取数据
for url in url_list:
response = get_url(url, headers)
# print(response)
# 选择标签,这里返回的是一个可迭代对象
data_set = sl_num(response)
# 遍历可迭代对象
for i in data_set:
# 写入数据
waite_data(i)
2004年10月18日,[‘0’, ‘7’, ‘0’],[‘4,143,184元’],[‘组三’],1 8 8
2004年10月19日,[‘5’, ‘5’, ‘7’],[‘3,026,718元’],[‘组三’],3 5 6
2004年10月20日,[‘9’, ‘8’, ‘6’],[‘3,280,608元’],[‘组六’],8 8 3
2004年10月21日,[‘7’, ‘9’, ‘1’],[‘3,447,146元’],[‘组六’],3 6 9
2004年10月22日,[‘9’, ‘4’, ‘1’],[‘3,510,020元’],[‘组六’],7 8 0
2004年10月23日,[‘6’, ‘1’, ‘1’],[‘3,297,440元’],[‘组三’],5 9 7
2004年10月24日,[‘1’, ‘4’, ‘4’],[‘3,071,100元’],[‘组三’],4 8 9
2004年10月25日,[‘4’, ‘7’, ‘1’],[‘3,255,474元’],[‘组六’],5 7 3
2004年10月26日,[‘5’, ‘0’, ‘5’],[‘3,355,906元’],[‘组三’],7 8 3
2004年10月27日,[‘8’, ‘2’, ‘8’],[‘3,627,176元’],[‘组三’],3 4 1
2004年10月28日,[‘6’, ‘0’, ‘7’],[‘3,713,534元’],[‘组六’],0 0 0
2004年10月29日,[‘8’, ‘7’, ‘8’],[‘3,986,350元’],[‘组三’],4 9 8
2004年10月30日,[‘4’, ‘7’, ‘7’],[‘3,859,626元’],[‘组三’],0 7 4
2004年10月31日,[‘4’, ‘7’, ‘6’],[‘4,027,212元’],[‘组六’],6 2 2
2004年11月1日 ,[‘4’, ‘3’, ‘9’],[‘4,256,120元’],[‘组六’],5 9 3
2004年11月2日 ,[‘6’, ‘7’, ‘9’],[‘4,319,854元’],[‘组六’],3 2 9
时间 | teset_100 | test_10 | test_1 | group | gewei | shiwei | baiwei |
---|---|---|---|---|---|---|---|
2004/10/18 0:00 | 1 | 8 | 8 | 3 | 0 | 7 | 0 |
2004/10/19 0:00 | 3 | 5 | 6 | 3 | 7 | 5 | 5 |
2004/10/20 0:00 | 8 | 8 | 3 | 6 | 6 | 8 | 9 |
2004/10/21 0:00 | 3 | 6 | 9 | 6 | 1 | 9 | 7 |
2004/10/22 0:00 | 7 | 8 | 0 | 6 | 1 | 4 | 9 |
2004/10/23 0:00 | 5 | 9 | 7 | 3 | 1 | 1 | 6 |
2004/10/24 0:00 | 4 | 8 | 9 | 3 | 4 | 4 | 1 |
2004/10/25 0:00 | 5 | 7 | 3 | 6 | 1 | 7 | 4 |
2004/10/26 0:00 | 7 | 8 | 3 | 3 | 5 | 0 | 5 |
2004/10/27 0:00 | 3 | 4 | 1 | 3 | 8 | 2 | 8 |
2004/10/28 0:00 | 0 | 0 | 0 | 6 | 7 | 0 | 6 |
2004/10/29 0:00 | 4 | 9 | 8 | 3 | 8 | 7 | 8 |
2004/10/30 0:00 | 0 | 7 | 4 | 3 | 7 | 7 | 4 |
2004/10/31 0:00 | 6 | 2 | 2 | 6 | 6 | 7 | 4 |
2004/11/1 0:00 | 5 | 9 | 3 | 6 | 9 | 3 | 4 |
2004/11/2 0:00 | 3 | 2 | 9 | 6 | 9 | 7 | 6 |
2004/11/3 0:00 | 6 | 6 | 7 | 3 | 8 | 8 | 6 |
2004/11/4 0:00 | 5 | 7 | 0 | 3 | 7 | 7 | 1 |
2004/11/5 0:00 | 2 | 8 | 8 | 6 | 4 | 6 | 2 |
2004/11/6 0:00 | 5 | 7 | 1 | 6 | 7 | 9 | 5 |
2004/11/7 0:00 | 8 | 3 | 2 | 6 | 0 | 7 | 2 |