#!/usr/bin/env python # coding: utf-8 # In[1]: import requests #这个导入库需要自己下载 import re import pandas as pd import time # In[2]: #生成链接 header={ 'User-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36' } base_url='https://www.lottery.gov.cn/kjpls/{}.html' data=[] #改变range值控制url数量 for i in range(14233,14445): new_url=base_url.format(i) #获取数据并且整合 r=requests.get(new_url,headers=header) r.encoding=r.apparent_encoding date=re.findall(r'期于(.+?)开奖',r.text)[0] if re.findall(r'投注总额(.+?) 元。',r.text) == []: #判断缺失值 amount=-1 else : amount=re.findall(r'投注总额(.+?) 元。',r.text)[0] result=re.findall(r'开奖结果: (.+?)<.+?>',r.text)[0] data.append( #date帮你改成了时间格式 [date,amount,result] ) #爬取多个网站的时候可以设置延迟,或者加个if判断每爬几个网站暂停一段时间 if i%7==0: print(i) time.sleep(3) elif i%2==0: time.sleep(2) #date[:4]+date[6:8]+date[10:12] # In[3]: i # In[4]: #保存数据 title=['date','amount','result'] df=pd.DataFrame(data,columns=title).set_index('date') df.to_csv('data14233--14445-1--na.csv') # In[5]: df=pd.read_csv('data14233--14445-1--na.csv',parse_dates=['date']) # In[17]: df.head(-10) # In[7]: #data # In[8]: #title=['date','amount','result'] #df1=pd.DataFrame(data,columns=title) # In[9]: #df1.info() # In[10]: df.info() # In[ ]: