效果图:
第一步肯定是先获取数据
(现成的接口的要钱啊,就算免费也限量啊。)
百度搜索历史上的今天
先看一看有没有现成的数据,
import requests
url = "https://baike.baidu.com/calendar/"
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"}
rep = requests.get(url=url,headers=headers)
html = rep.text
print(html)
打印完了之后发现啥数据都没有,除了广告
下一步就要看看有没有json接口数据了
使用抓包工具Fiddler 教程在这Fillder下载配置及汉化补丁(Windows版本)
用Fiddler找到了,复制此url(下面有现成的网页链接。)
查看json
数据轻松拿到了,接下来开始获取
获取并处理数据
- 保存json的url
项目结构图
- 导入需要的包
在Scrapy_.py 文件下
import requests
import json
import time
import re
- 分析url
url = "https://baike.baidu.com/cms/home/eventsOnHistory/08.json?_=1629275894939"
# 上面那个08是月份小于10需要前面加0,?=的是时间戳,写程序要写活,所以要把他们变为变量
#改进如下:
url = "https://baike.baidu.com/cms/home/eventsOnHistory/"+month+".json?_="+str(ts)
爬虫代码如下(Scrapy_.py文件下):
import requests
import json
import time
import re
def get_Month():
lt = time.localtime(time.time())
lt = lt[1]
if (lt>9):
return str(lt)
else: # 月份小于10前面加个0,保证格式
return "0"+str(lt)
def get_Day():
return str(time.localtime()[2])
def get_ts(): # 获取时间戳
return time.time