的网站建立,百家号关键词排名,网络平台推广运营培训,网站关键词分析工具1. 分析爬取地址
打开某乎首页#xff0c;点击热榜 这个就是我们需要爬取的地址#xff0c;取到地址某乎/api/v3/feed/topstory/hot-lists/total?limit50desktoptrue 定义好请求头#xff0c;从Accept往下的请求头全部复制#xff0c;转换成json
headers {Accep…1. 分析爬取地址
打开某乎首页点击热榜 这个就是我们需要爬取的地址取到地址某乎/api/v3/feed/topstory/hot-lists/total?limit50desktoptrue 定义好请求头从Accept往下的请求头全部复制转换成json
headers {Accept: */*,Accept-Encoding: gzip, deflate,Accept-Language: zh-CN,zh;q0.9,Cookie: 你的请求头中的cookie,Sec-Ch-Ua: Not/A)Brand\;v\99\, \Google Chrome\;v\115\, \Chromium\;v\115,Sec-Ch-Ua-Mobile: ?0,Sec-Ch-Ua-Platform: Windows,Sec-Fetch-Dest: empty,Sec-Fetch-Mode: cors,Sec-Fetch-Site: same-origin,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36,X-Ab-Param: ,X-Ab-Pb: CgInBxIBAA,X-Api-Version: 3.0.76,X-Requested-With: fetch,X-Zse-93: 101_3_3.0,X-Zse-96: 2.0_6hUpvt89zOcwtPHcLjutT0sL2PhwOPys0vfvQr7yneBCmMO2zkvXcYfoc5esu
}2. 分析请求结果
通过请求可以看出hot-lists/total?limit50desktoptrue请求后的返回参数直接是json格式则不需要单独处理 定义好需要抓取的参数按元素获取即可 order_list [] # 热榜排名title_list [] # 热榜标题desc_list [] # 热榜描述url_list [] # 热榜链接hot_value_list [] # 热度值answer_count_list [] # 回答数data_list json_data[data]order 1 # 热榜排名初始值GET请求接口 response requests.get(urlurl, headersheaders)json_data response.json()循环数组json并赋值 order_list.append(order)# 热榜标题title data[target][title_area][text]print(order, 热榜标题, title)title_list.append(title)desc_list.append(data[target][excerpt_area][text])url_list.append(data[target][link][url])hot_value_list.append(data[target][metrics_area][text])answer_count_list.append(data[feed_specific][answer_count])order 1
将结果导出到csv,注意定义一下编码集为utf_8_sig
df pd.DataFrame({热榜排名: order_list,热榜标题: title_list,热榜链接: url_list,热度值: hot_value_list,回答数: answer_count_list,热榜描述: desc_list,}
)
# 保存结果到csv文件
df.to_csv(知乎热榜.csv, indexFalse, encodingutf_8_sig)### 3. 结果验证

### 注意如果请求返回的json格式乱码调整请求头Accept-Encoding去掉br后即可