抓取数据为json文件,读入csv
来源:互联网 发布:iphone软件下载 编辑:程序博客网 时间:2024/06/02 05:30
- 抓取数据到json
- 把json导入csv
抓取数据到json
#coding:utf-8from bs4 import BeautifulSoupimport urllib2import urllibimport timeimport osimport jsonimport json2csvdef tencent(path): url="http://hr.tencent.com/" request=urllib2.Request(url+"position.php?&start=10#a") response=urllib2.urlopen(request) resHtml=response.read() output=open(path,'w') html=BeautifulSoup(resHtml,"lxml") #创建CSS选择器 result=html.select('tr[class="even"]') result2=html.select('tr[class="odd"]') result+=result2 items=[] for site in result: item={} name=site.select("td a")[0].get_text() detailLink=site.select("td a")[0].attrs["href"] catalog=site.select('td')[1].get_text() recruitNumber=site.select('td')[2].get_text() workLocation=site.select('td')[3].get_text() publishTime=site.select('td')[4].get_text() item["name"]=name item['detailLink']=url+detailLink item['catalog']=catalog item['recruitNumber']=recruitNumber item['publishTime']=publishTime items.append(item) line=json.dumps(items,ensure_ascii=False) output.write(line.encode("utf-8")) return 1if __name__=="__main__": path=("tencent.json") tencent(path) print(os.path.isfile(path)) if os.path.isfile(path)==1: json2csv.run(path)
把json导入csv
#coding:utf-8import jsonimport csvimport sysreload(sys)sys.setdefaultencoding('gbk')#这个实现的是抓取后变成中文。# o = json.loads(json_str)def loop_data(o, k=''): global json_ob, c_line if isinstance(o, dict): for key, value in o.items(): if(k==''): loop_data(value, key) else: loop_data(value, k + '.' + key) elif isinstance(o, list): for ov in o: loop_data(ov, k) else: if not k in json_ob: json_ob[k]={} json_ob[k][c_line]=odef get_title_rows(json_ob): title = [] row_num = 0 rows=[] for key in json_ob: title.append(key) v = json_ob[key] if len(v)>row_num: row_num = len(v) continue for i in range(row_num): row = {} for k in json_ob: v = json_ob[k] if i in v.keys(): row[k]=v[i] else: row[k] = '' rows.append(row) return title, rowsdef write_csv(title, rows, csv_file_name): with open(csv_file_name, 'w') as csv_file: writer = csv.DictWriter(csv_file, fieldnames=title) writer.writeheader() writer.writerows(rows)def json_to_csv(object_list): global json_ob, c_line json_ob = {} c_line = 0 for ov in object_list : loop_data(ov) c_line += 1 title, rows = get_title_rows(json_ob) write_csv(title, rows, 'test.csv')def run(path): o = json.load(open(path)) json_to_csv(o)
阅读全文
1 0
- 抓取数据为json文件,读入csv
- Python抓取CSV文件中数据
- Python抓取CSV文件中数据【V2】
- C++将csv文件数据读入数组中
- 读取csv文件转化为Json
- R:读入csv格式数据
- C++ 读入csv 文件程序
- 利用python将json数据转换为csv格式
- 将csv文件读入到数组里
- 从文件读入数据
- oracle数据库的表数据导出为csv文件
- 从ldap xmpp拿数据保存为csv文件
- 将数据导出为csv文件(需要javacsv.jar)
- php数据转换为html table或者csv文件
- 用ScriptableObject打包数据(以csv文件为例)
- 将任意表数据导出为CSV文件的过程
- 使用js把数据保存为csv文件
- 订单等数据导出为Csv文件注意事项
- 【LeetCode算法练习(C语言)】Median of Two Sorted Arrays
- GAN论文整理
- ubuntu设置开机启动程序
- 论文记录-Deep Compression:Compressing DeepNeural Networks With Pruning, Trained Quantization And Huffman
- Slf4j (一) HelloWorld示例
- 抓取数据为json文件,读入csv
- 基于Redis的简单分布式锁的原理
- HTML+CSS+JS面试题(附带答案)
- Java开发者必读的10篇精选优秀技术文章
- 单源最短路问题 Codevs 1557 热浪(含讲解)
- html1、2两天补充
- mysql索引
- Android View事件传播机制
- gcc 编译过程和编译优化