做网站素材在哪里找,wordpress同步到新浪微博,莱芜网站建设及优化,中国刚刚发生的新闻使用场景#xff1a;半自动#xff0c;一次性少量数据采集需求在工作中还是不少遇到的#xff0c;无论使用模拟的方式#xff0c;或者破解都不太划算。其实这种需求#xff0c;使用半自动爬虫是最简单的。不需要考虑网站反爬虫的问题#xff0c;因为你使用的就是真实的浏…使用场景半自动一次性少量数据采集需求在工作中还是不少遇到的无论使用模拟的方式或者破解都不太划算。其实这种需求使用半自动爬虫是最简单的。不需要考虑网站反爬虫的问题因为你使用的就是真实的浏览器不会通过代码来发起请求
从chrome获取har包 首先打开浏览器的开发者工具勾选上Perserve log复选框如下图所示
然后刷新页面。注意一定要先打开开发者工具再刷新页面顺序不能搞反了。接下来你就正常往下滚动页面或者点击翻页按钮滚到你不想滚为止。此时开发者工具里面已经有很多数据包了。如下图所示 在任何一个数据包上面右键选择Save all as HAR with content。就会把当前页面的所有数据包全部合并到一个 har 文件里面如下图所示 备注如果遇到需要来回跳转的页面可以使用抓包工具获取har,这个自己搜吧
示例代码只需要按提示修改相关变量和函数即可运行
import json
import csv
import jsonpath
from haralyzer import HarParser
#功能 解决一次性数据量不大的数据采集需求通过chrome获取所有请求包打包成har包然后解析存储# har包获取方法
# 1、打开chrome的检查,
# 2:勾选Network中的Preserve log,
# 3:刷新当前网页点击下一页或者滑动直到自己需要的数据加载完
# 4: 点击右上角的下载图标或者是选择任意一个请求右击点击’Save all as HAR with content‘# 代码使用方法: 按照需要修改har_file_path, url_keyword, csv_title_title三个变量以及解析函数parser_har, 其他都不需要动def save_csv(title_list, data_list):保存数据到csv文件中data_list.insert(0, title_list)with open(result_csv.csv, w, encodingutf-8-sig, newline) as csvFile:writer csv.writer(csvFile)# 写入多行用writerowswriter.writerows(data_list)print(组合数据运行结束, 结果文件result_csv.csv位于当前目录下)def read_har_file(har_file_path):读取指定路径的har文件har_parser HarParser.from_file(har_file_path)data har_parser.har_dataentries data[entries]for entry in entries:yield entrydef crawle_har_to_csv(har_file_path, url_keyword, csv_title_title):主启动函数all_result_list []for entry in read_har_file(har_file_path):url entry[request][url]if url.find(url_keyword) -1:print(url)body entry[response]if text in body[content]:content body[content][text]info json.loads(content)if sub_result_list : parser_har(info):all_result_list.extend(sub_result_list)save_csv(csv_title_title, all_result_list)#需要修改
def parser_har(json_content):解析har中的相关数据这个需要根据具体返回内容进行修改result_list []data_list jsonpath.jsonpath(json_content, $.data.content.offerList.*)if data_list:for offer in data_list:result_list.append([offer[subject], offer[price]])return result_listelse:print(parser_har函数没有获取指定的data_list)return []if __name__ __main__:#har包地址 需修改har_file_path rC:\Users\men\Desktop\milishipin.1688.com.har#择选的请求唯一关键词用来筛选关键词 需修改url_keyword mtop.1688.shop.data.get/1.0#csv文件中的title列表 需修改csv_title_title [名称, 价格]crawle_har_to_csv(har_file_path, url_keyword, csv_title_title)