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