分析过程:打开浏览器开发者工具,通过点击下一页可以知道内涵社区的下一页是
动态加载。
复制到浏览器查看一下是json数据
通过仔细分析发现
以下是代码过程
import requests#网络请求模块
import time
#一下是内涵段子分析过程
#真实网址
#http://neihanshequ.com/bar/1/?is_json=1&app_name=neihanshequ_web&max_time=1514600091.0
#上面网址返回的json格式的文件,包含了本页的评论内容和下一页网址的时间戳
#http://neihanshequ.com/bar/1/?is_json=1&app_name=neihanshequ_web&max_time=11514594379
#上面的网址又返回了json文件,包含了本页的评论内容和下一页的时间戳
#故,爬取思路是==》外层循拼接下一页网址,内层循环保存评论内容和下一页的时间戳,内容保存到本地,时间戳返回给外层循环拼接
#注意的是,时间戳可能是整数,也可能是浮点数,
timesamp = 1514600091.0
while type(timesamp) == float or type(timesamp) == int:
time.sleep(2)
url = 'http://neihanshequ.com/bar/1/?is_json=1&app_name=neihanshequ_web&max_time='+str(timesamp)
html = requests.get(url)
for i in range(20):
data = html.json()['data']['data'][i]['group']['text']
print(data,end='\n')
timesamp = html.json()['data']['max_time']
with open('内涵段子.txt','a+',encoding='utf-8') as ff:
ff.write('第'+str(i+1)+'内涵段子:'+data+'\n'*2)