2018-02-14 新闻内容爬虫【上学时做论文自己爬新闻数据,原谅我自己懒发的图片】

2018-02-14新闻内容爬虫【上学时做论文自己爬新闻数据,原谅我自己懒发的图片】资源-CSDN文库icon-default.png?t=N7T8https://download.csdn.net/download/liuzhuchen/88878591爬虫过的站点:

1QQ新闻

1,准备爬取滚动新闻页面

2 通过F12 开发工具查找发现,动态获取数据url

3 获取数据格式,

注意:请求页面时,必须加头部信息

4 页面内容解析

5 评论获取

评论页面

评论数据

6 注意

2 新浪

1 准备爬取滚动页面

2 滚动页面类别,只是部分,往后和的url 基本都不更新了

3 动态获取滚动页面数据

4 获取的动态页面新闻条目

5 获取评论内容

3 网易新闻

1 滚动新闻

2 页面内容爬取,

3 获取评论内容

4 南方周未

1 滚动爬取

2 评论内容太少,没看

5 环球网

1 滚动爬取

2 评论太少没看

6

7 中国新闻网

1 滚动新闻

2 获取所有的正文 url

3 评论太少,没看

8 搜狐

1 sohu没有可有滚动新闻页面

2 评论获取

9 央视网

1 滚动页面

2 正则获取正文 url

10 python 执行js 脚本

execjs 方法,尝试可有

1 执行函数

2 js 的JSON数据输出为序列,再转为python JSON

3 JSON-js 包

爬虫过的站点:

  1. qq
  2. 新浪
  3. 网易
  4. 南方周未
  5. 环球网
  6. 中国新闻网
  7. 搜狐
  8. 央视网
  9. python 执行js 脚本

1QQ新闻

说明:新闻数据量最不大,有一些评论。到是可以爬以前的历史数据

1,准备爬取滚动新闻页面

http://roll.news.qq.com/

0

可以选择日期,选择国内,国际,社会三种类型

2 通过F12 开发工具查找发现,动态获取数据url

http://roll.news.qq.com/interface/roll.php?0.7455619115457752&cata=newsgn,newsgj,newssh&site=news&date=&page=1&mode=1&of=json

0.7455619115457752就是一个随机数

cata=newsgn,newsgj,newssh表示先中的3种类型,如果是其他大类,体育或是财经也有其他的小类如下:

0

site=news 表示所在大类

date= 表示往期回顾日期,不写表示当天向后显示10页,每页50条新闻

page=1表示第几页

mode=1 表示标题模式 还是摘要模式

3 获取数据格式

获取数据是一个字典,可以使用如一代码查看

注意:请求页面时,必须加头部信息

#必须用 referer 和 user_agent 参数

import requests

import chardet

user_agent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"

referer = "http://news.qq.com/"

#构建页面请求的头部

headers = {'User-Agent':user_agent, "Referer":referer}

#构建页面请求

url ='http://roll.news.qq.com/interface/roll.php?0.7455619115457752&cata=newsgn,newsgj,newssh&site=news&date=&page=1&mode=1&of=json'

response = requests.get(url, headers=headers)

res = chardet.detect(response.content)

response.encoding = res['encoding']

response.text

articleRollDict = json.loads(response.text, encoding=response.encoding)

4 页面内容解析

我使用的是

from bs4 import BeautifulSoup as soup

doc = soup(response.text, 'html5lib')

现在使用,doc.select()是不会标签的多个属性一起查找,比如:

要查找div 标签 class 是 box 并且id是 J_Post。

5 评论获取

评论页面

# http://coral.qq.com/+cmt_id

# http://coral.qq.com/2416704416

cmt_id是从内容页面里获取的。

查找如下一段script 代码

<script>
    document.domain = 'qq.com';
    cmt_site = 'news';
    cmt_id = 2416704416;
    cmt_is_group = 0;
    cmt_count_id = 'comment_count|comment_count2';
</script><!--相关搜索-->

评论数据

v1版本

使用时可以改成,从最新到旧,注意 有一个参数 V2加 上和不加上是有区别的

腾讯网

%s 是cmt_id值

评论信息数据

{

"errCode":0,

"data":{

"targetid":2416849772,

"display":1,

"total":2236,

"reqnum":1,

"retnum":1,

"maxid":"6368409946459638057",

"first":"6368070716583592288",

"last":"6368070716583592288",

"hasnext":true,

"commentid":[{"id":"6368070716583592288","rootid":"0","targetid":2416849772,"parent":"0","timeDifference":"\u6628\u5929 20:39:31","time":1518266371,"content":"\u5c0a\u656c\u7684\u4e60\u4e3b\u5e2d\u7956\u56fd\u8fd9\u51e0\u5e74\u8de8\u8d8a\u5f0f\u7684\u53d1\u5c55\uff0c\u4f60\u505a\u51fa\u4e86\u4f1f\u5927\u7684\u8d21\u732e\uff0c\u5c24\u5176\u662f\u53cd\u8150\u8d25\u548c\u8001\u767e\u59d3\u7684\u8131\u8d2b\uff0c\u60a8\u662f\u4eba\u6c11\u7684\u529f\u81e3","title":"","up":"16","rep":"0","type":"1","hotscale":"0","checktype":"2","checkstatus":"1","isdeleted":"0","tagself":"","taghost":"","source":"2","location":"","address":"","rank":"-1","custom":"{\"nid\":\"NEW2018021000440000\"}","extend":{"at":0,"ut":0,"ct":"","wt":0},"orireplynum":"0","richtype":0,"userid":"244293709","poke":0,"abstract":"","thirdid":"","ispick":0,"ishide":0,"isauthor":0,"replyuser":"","replyuserid":0,"replyhwvip":0,"replyhwlevel":0,"replyhwannual":0,"userinfo":{"userid":"244293709","uidex":"ec8f33bc266f2542debc1b0fde2ae4f35c","nick":"sunshine","head":"http:\/\/q2.qlogo.cn\/g?b=qq&k=PkjialNicxiaia4aBmEbUvC2Fw&s=40&t=1518278400","gender":1,"viptype":"0","mediaid":0,"region":"\u4e2d\u56fd:\u7518\u8083:\u5929\u6c34","thirdlogin":0,"hwvip":0,"hwlevel":0,"hwannual":0,"identity":"","wbuserinfo":[],"certinfo":"","remark":"","fnd":0}}],

"targetinfo":{"orgcommentnum":"21454","commentnum":"2236","checkstatus":"0","checktype":"2","city":"","voteid":"","topicids":"","commup":"57857"}},"info":{"time":1518356838}}

orgcommentnum = commentnum+所有回复数

commup (点攒数)

orgcommentnum":"13","commentnum":"9","checkstatus":"0","checktype":"1","city":"","voteid":"","topicids":"","commup":"4"

orireplynum 表求有回复,几条,3层的不在计数内

v2版本

每页30条评论

使用F12 开发者工具,发现获取数据url

腾讯网

pageflag=1 表示降序 2表示升序

cursor=6368375395179841307 上一次最后一个id

orinum=10表示原始数据数 最大30

oriorder=o 表示最热排序 ,t表示时间排序

orirepnum=2 每条原始评论的显示回复数

reporder=o

腾讯网&orinum=30&oriorder=t

评论回复

rootComUrl='http://coral.qq.com/comment/%s' \

'/reply/v2?targetid=%s' \

'&reqnum=2&pageflag=2&cursor=%s'

maxCommNum=1

preLastId='0' #上一次请求的最后一个评论ID

totalCount=0

while totalCount

#articleCmntId就是 上边提到的cmnt_id值

url = rootComUrl%(评论ID,articleCmntId,preLastId)

6 注意

QQ的跳转太多,只有在请求滚动页面时需要加头,其他都可以不用

cmnt_id在不同的页面可能不太一样,有的是下边两种格式

comment_id

aid

2 新浪

说明:这个是新闻数据最多的,最活跃的。

1 准备爬取滚动页面

滚动页面地址:http://roll.news.sina.com.cn,显示如下

0

0

2 滚动页面类别,只是部分,往后和的url 基本都不更新了

http://roll.news.sina.com.cn/s/channel.php?ch=00 滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=01 新闻中心滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=02 体育滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=03 财经滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=04 娱乐  utf8

http://roll.news.sina.com.cn/s/channel.php?ch=05 科技滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=06 军事滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=07 股市滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=08 美股滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=09 世界杯滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=10 世界杯新闻定制滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=11 iPad视频滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=12 科技数码滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=13 财经ipad滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=14 2010亚运会滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=15 iPad-NBA滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=16 收藏滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=17 iPad视频客户端滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=18 航空滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=19 教育滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=20 女性滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=21 读书滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=22 时尚滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=23 深度滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=24 高尔夫滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=25 汽车滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=26 2012奥运项目滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=27 2012奥运项目滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=28 All News - SINA English

http://roll.news.sina.com.cn/s/channel.php?ch=29 星座滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=30 育儿滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=31 尚品滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=32 佛学滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=33 健康滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=34 大时尚滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=35 图片滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=36 博客滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=37 美食滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=38 旅游滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=39 房产滚动新闻_新浪网

http://roll.news.sina.com.cn/s/channel.php?ch=40 北美全球新闻滚动新闻_新浪网

3 动态获取滚动页面数据

rollUrl = 'http://roll.news.sina.com.cn/interface/rollnews_ch_out_interface.php?col=%s' \

'&spec=&type=1&date=%s' \

'&ch=01&k=&offset_page=0&offset_num=0&num=%s' \

'&asc=&page=%s'

rollCol_1 = '90,91,92' #表示新闻大类中的3个小类,国内,国际,社会

# rollData_2=''

rollNum_3 = 80 #一次请求80条数据,可以改,不一定是40 60 80,可以随意改

rollPage_4 = 1

#date = 表示同QQ一样 如date=2018-02-11

#ch=01 表示意思看上一小节内容

#type=1 表示3种类型,文本,视频,图片

4 获取的动态页面新闻条目

var jsonData = { serverSeconds : 1518609995,

last_time : 1517845981,

path : [{title : "社会", id : "92", cType : "col"}],

count : 120,

offset_page : 0,

offset_num : 0,

list : [ {channel : {title : "社会",id : "92",cType : "col",url : ""},title : "男子要求为妻换病房遭拒后殴打护士 警方:已刑拘",url : "http://news.sina.com.cn/c/2018-02-05/doc-ifyreuzn3452012.shtml",type : '1',pic : '',time : 1517845981}] };

这个我是使用python 调用js的JSON序列化后再转成python字典,可以看目录10中内容。

5 获取评论内容

一次最多获取200条

urlRoot = 'http://comment5.news.sina.com.cn/page/info?version=1&format=json&channel=%s&newsid=%s&&page=%d&page_size=200&ie=utf-8&oe=utf-8&group=undefined&compress=0'

url = urlRoot % (channel, newsid, 1)

以下两个参数,是从内容页面中获取的

channel

newsid

sh:comos-fyreuzn3452012" />sh;comment_id:comos-fyreuzn3452012" />

获得的数据是json格式 直接使用json.loads 加载

otherResponse = requestUrl(url)

if otherResponse is None:

return 点赞数, 评论数, commentList

if not otherResponse.ok or otherResponse.status_code != 200:

logger.info("评论请求失败 %s" % (url))

return 点赞数, 评论数, commentList

jsonpStr = otherResponse.text

jsonp = json.loads(jsonpStr)

评论数据:

{"result": {"status": {"msg": "", "code": 0}, "count": {"qreply": 1578, "total": 1650, "show": 54}, "replydict": {"5A7

点赞数 = jsonp['result']['count']['total'] # total 参与数  qreply 赞同数  total!=qreply+show

评论数 = jsonp['result']['count']['show']

3 网易新闻

注意:网易新闻不可以爬取历史数据就3天数据的,有评论。

1 滚动新闻

只有一页,不能看往期回顾的历史数据,

这一页数据3天左右,请求地址:http://news.163.com/special/0001220O/news_json.js?0.5738355523554022

正则提取url:

urlList += re.findall('http://news.163.com/[\d]{2}/[\d]{4}/[\d]{2}/[\\S]*.html', response.text)

2 页面内容爬取,

我使用'http://news.163.com/shehui/', 'http://news.163.com/special/0001220O/news_json.js?0.5738355523554022' 两个地址作为种子,开始使用scrapy开始爬取数据。

3 获取评论内容

urlRoot = 'http://comment.news.163.com/api/v1/products/%s/threads/%s'

commentList = []

点赞数 = 0

评论数 = 0

url = urlRoot % (productKey, newsid)

参数

productKey

newsid

newsid 可以从url中获取

productKey 从正文页面script中获取如下js数据。

var config = {

"productKey" : "a2869674571f77b5a0867c3d71db5856",

"docId" : "DAG0F9SL0001885B",

"target" : document.getElementById("post_comment"), //Dom 容器

//展示的功能按钮:顶、踩、回复、收藏、举报、分享

"operators": ["up", "down", "reply", "share"],

"isShowComments": isShowComments, //是否显示帖子列表

"hotSize": 3, //热门跟贴列表 展示 3 条

"newSize": 2, //最新跟贴列表 展示 2 条

"submitType": "commentPage" //新发帖子的展现形式:停留在当前页面(currentPage) | 跳转到跟贴详情页(commentPage)

};

使用正则

# a.*c

# 对从a到c的字符串最长匹配

# a.*?c

# 对从a到c的字符串最短匹配

t_configDict = re.search('var config = {(.*?)};', response.text, re.S)

这个数据不能直接加载到json.loads。也可以直接获取"productKey" : "a2869674571f77b5a0867c3d71db5856",,中productKey的值,正则:

productKey = re.search('"productKey" : "(.*?)",', response.text, re.S)。

也可以使用目录10方式,转换为python字典。

4 评论数据格式

# {"against": 0,

# "boardId": "news2_bbs",

# "channelId": "0001",

# "cmtAgainst": 4, 反对计数

# "cmtVote": 3955, h点赞数,跟贴会在这里加

# "createTime": "2018-02-12 08:47:55",

# "docId": "DAEC3F0G00018AOQ",

# "isAudit": false,

# "modifyTime": "2018-02-12 10:05:27",

# "pdocId": "DAEC3F0G00018AOQ",

# "rcount": 272, 还不知道是做什么的

# "status": {"against": "on", "audio": "off", "web": "on", "joincount": "on", "label": "on", "app": "on"},

# "tcount": 242, 评论数, 发起评论数

# "title": "三亚春节期间日均车流量将达55万辆 交警取消休假",

# "url": "http://news.163.com/18/0212/08/DAEC3F0G00018AOQ.html",

# "vote": 64} 表示当前评论的点赞数

4 南方周未

说明:数量不多,评论内容基本没有

1 滚动爬取

滚动首页:找准“孤岛”事件的病根 | 南方周末/

找准“孤岛”事件的病根 | 南方周末/+pageNum

使用 scrapy 的CSS提取url :

# 提取内容链接

contentLinks = response.css('div[class*=articleTitle] a::attr(href)').extract()

2 评论内容太少,没看

5 环球网

说明:数据量还可以,滚动新闻可以有1800条,每一个类别

1 滚动爬取

使用scrapy,以三个滚动内容为种子: 'http://society.huanqiu.com/article/', 'http://china.huanqiu.com/article/',

'http://world.huanqiu.com/article/'

如下图:

0

翻页,每个类另就30页内容,差不多有不到3个月的数据。

for i in range(2,31):

url = response.url+str(i)+'.html'

print("pares:", url)

提取url :

t = re.findall(response.url+'[\d]{4}-[\d]{2}/[\d]{8,}.html', otherResponse.text)

2 评论太少没看

6

7 中国新闻网

说明:爬取, 社会,和国际,国内, 要闻。这个爬虫,只爬内容,不爬评论。

1 滚动新闻

这个滚动比较好,不用翻页,反的内容在一页里。

rootUrl='http://www.chinanews.com'

rollUrl='http://www.chinanews.com/scroll-news/%s/%s/%s%s/news.shtml'

# 爬虫类别,社会,国际,国内

rollCol_1 = 'sh,gj,gn'

for col in rollCol_1:

nextUrl = rollUrl % (col, YYYY, MM,DD)

0

2 获取所有的正文 url

def __get_web_xml_dict(self,text):

doc = soup(text, 'html5lib')

res =doc.select('div[class=content_list] a')

resdictList = [x['href'] for x in res]

return resdictList

3 评论太少,没看

8 搜狐

1 sohu没有可有滚动新闻页面

以社会版为基础,搜狐 向下拉动页面时动态加载。

使用F12 查看出加载js数据链接:

完整的社会加载页面是这样的

http://v2.sohu.com/public-api/feed?scene=CHANNEL&sceneId=43&page=3&size=20&callback=jQuery112409024281900407367_1518523290701&_=1518523290747

社会页面,删除不必要的后两个字段,返回的是一个 字典list

http://v2.sohu.com/public-api/feed?scene=CHANNEL&sceneId=43&page=2&size=500

字典list 主要获取两个值

"id":222662942,"authorId":656058,"

url参数说明:

sceneId=43 类型号,43表示社会类。

page=2&size=500 可以随意改动 page 分页,size 表示每页多少条新闻。

拼接正文URL:

内容页面是通过拼接出来的

404,您访问的页面已经不存在!

http://www.sohu.com/a/ + ID + authorId + ?_f=index_chan43news_1

2 评论获取

评论地址:

http://apiv2.sohu.com/api/comment/list?callback=jQuery112408923300187175247_1518527025167&page_size=10&topic_id=1232684&page_no=2&source_id=mp_222586905&_=1518527025198

可用减少的参数:

http://apiv2.sohu.com/api/comment/list?page_size=10&topic_id=1232684&page_no=2&source_id=mp_222586905

参数说明:

source_id = mp_+上一节的id,不是作者id

topic_id获取,这个client_id=cyqemw6s1 不是我的,网上别人的。

http://changyan.sohu.com/api/3/topic/liteload?client_id=cyqemw6s1&topic_url= +URL

http://changyan.sohu.com/api/3/topic/liteload?client_id=cyqemw6s1&topic_url=http://www.sohu.com/a/222568275_119562

获取topic_id内容

{"cmt_sum":0,"comments":[],"hots":[],"mode":6,"outer_cmt_sum":0,"participation_sum":0,"topic_id":4458981604}

获取评论内容

http://apiv2.sohu.com/api/comment/list?page_size=10&topic_id=4458981604&page_no=2&source_id=mp_222568275

{"code":200,

"msg":"SUCC",

"jsonObject":{"cmt_sum":70,

"participation_sum":534,

"author_user_id":0,

"source_id":null,

"outer_cmt_sum":70,

"total_page_no":70,

"hots":[],

"topic_id":1232498,

"comments":[{"content":"心理素质是培养出来的,不是先天的。没人对他好好培养,不是他自己的错","comment_id":5314948,"status":1,"reply_count":0,"reply_id":5314432,"support_count":0,"create_time":1518530874815,"user_id":191688,"from":"client","attachments":[],"passport":{"img_url":"https://sucimg.itc.cn/avatarimg/320104377_1450609122085","nickname":"不爱动脑","user_id":191688},"comments":[{"content":"心理素质太差了","comment_id":5314432,"status":1,"reply_count":1,"reply_id":0,"support_count":1,"create_time":1518530042690,"user_id":498816,"from":"client","attachments":[],"passport":{"img_url":"https://sucimg.itc.cn/avatarimg/540734539_1480586746532_c175","nickname":"visitor607623095","user_id":498816},"comments":null,"ip_location":"安徽省","ip":"117.136.101.37"}],"ip_location":"北京市北京市","ip":"180.88.190.165"}]

}

}

点赞数 = jsonp['jsonObject']['participation_sum']

评论数 = jsonp['jsonObject']['cmt_sum']

9 央视网

1 滚动页面

央视网页面,每次获取的数据是固定的,

比如社会新闻_央视网(cctv.com),社会版。

获取所有数据:http://news.cctv.com/society/data/index.json,是一个json数据

http://news.cctv.com/society/data/index.json

以下替换society就可以获取其他版的数据

law

word

society

tech

world

china

2 正则获取正文 url

t = re.findall('http://news.cctv.com/[\d]{4}/[\d]{2}/[\d]{2}/[\\S]*.html', otherResponse.text)

10 python 执行js 脚本

execjs 方法,尝试可有

有好几种,试了下都没成功,这个可以

1 执行函数

import execjs

# source = """

# 你的这段js

# """

#

# print (execjs.compile(source).call('加密方法', '参数1', '参数2'))

source="""

function add(x, y) {

return x + y;

}

"""

print (execjs.compile(source).call('add',1,2))

import json

a = '{"name":"aa","age":45}'

b = json.loads(a)

print(b)

2 js 的JSON数据输出为序列,再转为python JSON

import requests

# json解析库,对应到lxml

import json

# json的解析语法,对应到xpath

import execjs

data = """var config = {

"productKey" : "a2869674571f77b5a0867c3d71db5856",

"docId" : "DAG0F9SL0001885B",

"target" : document.getElementById("post_comment"), //Dom 容器

//展示的功能按钮:顶、踩、回复、收藏、举报、分享

"operators": ["up", "down", "reply", "share"],

"isShowComments": isShowComments, //是否显示帖子列表

"hotSize": 3, //热门跟贴列表 展示 3 条

"newSize": 2, //最新跟贴列表 展示 2 条

"submitType": "commentPage" //新发帖子的展现形式:停留在当前页面(currentPage) | 跳转到跟贴详情页(commentPage)

};"""

data=data.replace('document.getElementById("post_comment"),','"",')

data=data.replace('isShowComments,','"",')

print(data)

'''加载 js 的JSON库'''

f = open("../utils/JSON-js-master/json2.js", 'r', encoding='UTF-8')

js_json_function = f.read()

# print(js_json_function)

js_json_function = js_json_function+"""

function jsonToXuLeiHua(){

%s

return JSON.stringify(%s);

}

"""%(data,'config')

# print(js_json_function)

res = execjs.compile(js_json_function).call('jsonToXuLeiHua')

# print (execjs.compile(js_json_function).call('jsonToXuLeiHua'))

print(type(res),res)

unicodestr = json.loads(res)

# python形式的列表

print(type(unicodestr),unicodestr)

3 JSON-js 包

JSON-js-master.zip

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/704792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高性能 Kafka 及常见面试题

Kafka 是一种分布式的&#xff0c;基于发布/订阅的消息系统&#xff0c;原本开发自 LinkedIn&#xff0c;用作 LinkedIn 的事件流&#xff08;Event Stream&#xff09;和运营数据处理管道&#xff08;Pipeline&#xff09;的基础。 基础原理详解可见 Kafka 基本架构及原理 基础…

嵌入式驱动学习第一周——git的使用

前言 本文主要介绍git的使用&#xff0c;包括介绍git&#xff0c;gitee&#xff0c;以及使用gitee创建仓库并托管代码 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程&#xff0c;未来预计四个月将高强度更新本专栏&#xff0c;喜欢的可以关注本博主并订阅本专栏&#xf…

【C进阶】顺序表详解

文章目录 &#x1f4dd;线性表的概念&#x1f320; 顺序表&#x1f309;顺序表的概念 &#x1f320;声明--接口&#x1f309;启动&#x1f320;初始化&#x1f309;扩容&#x1f320;尾插&#x1f309; 打印&#x1f320;销毁&#x1f309; 尾删&#x1f320;头插&#x1f309;…

探索便捷办公新选择:ONLYOFFICE 桌面编辑器

目录 引言 1. ONLYOFFICE 桌面编辑器简介 2. 功能特点 2.1 多格式支持 2.2 实时协作编辑 2.3 兼容性与格式保持 2.4 丰富的编辑功能 3. 使用方法 3.1 下载安装 3.2 打开文档 3.3 编辑文档 3.4 保存和共享 4. 注意事项 4.1 版本更新 4.2 网络连接 4.3 安全性 5.…

FL Studio Producer Edition2024中文进阶版Win/Mac

FL Studio Producer Edition&#xff0c;特别是其【中文进阶版 Win/Mac】&#xff0c;是数字音乐制作领域中的一款知名软件。它为广大音乐制作人、声音工程师以及音乐爱好者提供了一个从音乐构思到最终作品发布的完整解决方案。这个版本特别为中文用户优化&#xff0c;并兼容W…

【Android移动开发】Windows10平台安装Android Studio与人工智能算法模型部署案例

目录 一、Android Studio下载地址二、开发环境JDK三、开始安装Android Studio四、案例展示与搭建五、人工智能算法模型移动端部署案例参考 一、Android Studio下载地址 https://developer.android.google.cn/studio/install.html 电脑配置要求&#xff1a; 下载保存在指定文…

Java+SpringBoot+Vue+MySQL构建银行客户管理新平台

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…

Linux按键输入实验-创建按键的设备节点

一. 简介 Linux内核针对 GPIO驱动开发,提供了 pinctrl子系统与gpio子系统,方便了 GPIO驱动程序的开发。 本文开始学习如何利用 Linux内核的 pinctrl子系统,与 gpio子系统提供的 API函数,开发按键驱动。 这里主要学习在设备树文件中创建按键的设备节点。 二. Linux按键…

C# 学习第三弹——表达式

表达式操作数运算符 &#xff08;一&#xff09;算数运算符 错误例子&#xff1a;这不是python&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 正确结果&a…

css transform 会影响position 定位

比如通过以下代码.实现导航条上的每个li栏目,以不同的时间间隔,从上向下移动进来并显示 .my-navbar ul li {position: relative;opacity: 0;transform: translateY(-30px);transition: transform .6s cubic-bezier(.165,.84,.44,1),opacity .6s cubic-bezier(.165,.84,.44,1);…

【力扣 - 有效的括号】

题目描述 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同…

【数据结构】线性表 顺序表(动态、静态分配,插入删除查找基本操作)解析+完整代码

1.线性表的基本概念 定义 线性表&#xff08;Linear List&#xff09;是具有相同数据类型的n个数据元素的有限序列。 n为表长&#xff0c;n0时线性表是个空表 前驱、后继 前驱&#xff1a;其中一个数据元素的前一个元素。第一个元素没有前驱。后继&#xff1a;其中一个数据元素…

使用R语言进行多元线性回归分析-多重共线的诊断

一、数据集 序号X1x2x3x4Y序号X1x2x3X4Y12666078.57831224472.51229155274.31954182293.12356850104.3111047426115.92143184787.6111140233483.8155263395.971266912113.311655922109.2111368812109.410771176102.73       1、从中选取主要变量&#xff0c;建立与因变…

SQL注入漏洞解析--less-46

我们先看一下46关 他说让我们先输入一个数字作为sort,那我们就先输入数字看一下 当我们分别输入1&#xff0c;2&#xff0c;3可以看到按照字母顺序进行了排序&#xff0c;所以它便是一个使用了order by语句进行排序的查询的一种查询输出方式 当输入时出现报错提示&#xff0c;说…

AI一键生成3D模型!

一、Genie Genie 是 Luma AI 推出的一个文本到 3D 的生成模型&#xff0c;可以在 10 秒生成 4 款 3D 模型&#xff0c;自动精修后质感非常逼真&#xff0c;目前支持免费使用。 此次的 1.0 版本更新后将生成功能由 Discord 转到了单独的网页&#xff0c;使用起来更方便&#x…

无法访问云服务器上部署的Docker容器(二)

说明&#xff1a;记录一次使用公网IP 接口地址无法访问阿里云服务接口的问题&#xff1b; 描述 最近&#xff0c;我使用Docker部署了jeecg-boot项目&#xff0c;部署过程都没有问题&#xff0c;也没有错误信息。部署完成后&#xff0c;通过下面的地址访问后端Swagger接口文档…

CleanMyMac4苹果Mac电脑全面、高效的系统清理工具

CleanMyMac 4 for Mac是一款专为Mac用户设计的系统清理和优化工具。它具备多种功能&#xff0c;旨在帮助用户轻松管理和释放Mac上的磁盘空间&#xff0c;同时提升系统性能。 系统垃圾清理&#xff1a;CleanMyMac 4能够深入扫描Mac的每一个角落&#xff0c;智能识别并清除不需要…

LDR6020双盲插音频随便插充电听歌随便插

随着智能手机的普及和功能的日益丰富&#xff0c;手机已经成为我们日常生活中不可或缺的一部分。音乐、电影、游戏等娱乐内容更是丰富了手机的使用体验。而在这其中&#xff0c;音频转接器的作用愈发凸显&#xff0c;特别是在边听边充的场景下&#xff0c;一款高效且便捷的手机…

实践航拍小目标检测,基于轻量级YOLOv8n开发构建无人机航拍场景下的小目标检测识别分析系统

关于无人机相关的场景在我们之前的博文也有一些比较早期的实践&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a; 《deepLabV3Plus实现无人机航拍目标分割识别系统》 《基于目标检测的无人机航拍场景下小目标检测实践》 《助力环保河道水质监测&#xff0c;基于yolov…

小龙虾优化算法COA求解不闭合SD-MTSP,可以修改旅行商个数及起点(提供MATLAB代码)

一、小龙虾优化算法COA 小龙虾优化算法&#xff08;Crayfsh optimization algorithm&#xff0c;COA&#xff09;由Jia Heming 等人于2023年提出&#xff0c;该算法模拟小龙虾的避暑、竞争和觅食行为&#xff0c;具有搜索速度快&#xff0c;搜索能力强&#xff0c;能够有效平衡…