python爬取数据保存为json格式
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#encoding:'utf-8' import urllib.request from bs4 import beautifulsoup import os import time import codecs import json #找到网址 def getdatas(): # 伪装 header = { 'user-agent' : "mozilla/5.0 (x11; cros i686 2268.111.0) applewebkit/536.11 (khtml, like gecko) chrome/20.0.1132.57 safari/536.11" } # url="https://movie.douban.com/top250" url = "file:///e:/scrapy/2018-04-27/movie/movie.html" ret = urllib.request.request(url = url,headers = header) # 打开网页 res = urllib.request.urlopen(ret) # 转化格式 response = beautifulsoup(res, 'html.parser' ) # 找到想要数据的父元素 datas = response.find_all( 'div' ,{ 'class' : 'item' }) # print(datas) #创建存放数据的文件夹 folder_name = "output" if not os.path.exists(folder_name): os.mkdir(folder_name) # 定义文件 current_time = time.strftime( '%y-%m-%d' ,time.localtime()) file_name = "move" + current_time + ".json" # 文件路径 file_path = folder_name + "/" + file_name for item in datas: # print(item) dict1 = {} dict1[ 'rank' ] = item.find( 'div' ,{ 'class' : 'pic' }).find( 'em' ).get_text() dict1[ 'title' ] = item.find( 'div' ,{ 'class' : 'info' }).find( 'div' ,{ 'class' : 'hd' }).find( 'a' ).find( 'span' ,{ 'class' : 'title' }).get_text() dict1[ 'picurl' ] = item.find( 'div' ,{ 'class' : 'pic' }).find( 'a' ).find( 'img' ).get( 'src' ) # print(picurl) # 保存数据为json格式 try : with codecs. open (file_path, 'a' ,encoding = "utf-8" ) as fp: fp.write(json.dumps(dict1,ensure_ascii = false) + ",\n" ) except ioerror as err: print ( 'error' + str (err)) finally : fp.close() pass getdatas() # 爬取数据 |
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/zhanghl150426/article/details/82022339