python怎么解析爬虫爬取的JS的变量?

bluesjunior 2018-05-16 12:24:59
看到这篇:“新浪期货数据接口”的文章时https://blog.csdn.net/teddyu_leo/article/details/38308339,我尝试了下。

发现用网页打开http://hq.sinajs.cn/list=JM0没问题,但是用urllib.request模块解析时想用for循环把逗号分隔的内容放入数组,但是解析出来的都是莫名的数字。

哪位能帮我看看是什么问题,谢了。

import urllib.request

JM0 = 'http://hq.sinajs.cn/list=JM0'

file=urllib.request.urlopen(JM0)

data=file.read()

print(data)
print(data[0])
print(data[6])

for i in data:
print(i)



b'var hq_str_JM0="\xbd\xb9\xc3\xba\xc1\xac\xd0\xf8,112940,1272.00,1279.00,1256.50,1270.50
这里都正常但是一用for循环就不对了,如果要把1272.00,1279.00这些数字放入数组该怎么操作呢?
...全文
1529 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
滕洗尘 2019-04-27
  • 打赏
  • 举报
回复
需要解码 bytes -> str
混沌鳄鱼 2018-05-16
  • 打赏
  • 举报
回复
第7行改成 data=file.read().decode('gbk')
【资源说明】 基于Flask的Python全国招聘岗位就业可视化系统源码+项目部署说明+详细注释.zip 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能。 1 开发环境** * 1 系统:Window 10 家庭中文版。 * 2 语言:Python(3.8.5)、MySQL(5.5)。 * 3 Python所需的库:flask、pymysql、pandas、numpy、time、datetime、requests、etree、jieba、re、json、decimal(没有的话pip或conda安装一下~)。 * 4 编辑器:jupyter Lab(jupyter notebook)、Pycharm(主用)、Navicat。 2 运行说明** 本项目下面有五个.py的文件,下面分别阐述各个文件所对应的功能:
* 1 data_collection:分别从前程无忧网站和猎聘网上以关键词`job_name`爬取相关数据。其中,前程无忧爬取的数据主要用来进行相关图表的绘制;而猎聘网上主要为岗位要求文本数据,这部分进行词云的可视化展示。 * 2 data_clean:对爬取到的数据进行清洗,包括去重去缺失值、变量重编码、特征字段创造、文本分词等。 * 3 data_store:将清洗后的数据全部储存到`MySQL`中,其中对文本数据使用`jieba.analyse`下的`extract_tags`来获取文本中的关键词和权重大小,方便绘制词云。 * 4 utils:大多为app调用MySQL数据库中的工具类函数;同时,里面也有引用data_collection、data_clean、data_store等函数,我们也主要使用该工具类进行岗位数据的爬取、清洗和存储。 * 5 app:使用`Python`一个小型轻量的`Flask`框架来进行`Web`可视化系统的搭建,在static中有css和js文件,js中大多为百度开源的[ECharts](https://echarts.apache.org/examples/zh/index.html),再通过自定义`controller.js`来使用ajax调用flask已设定好的路由,将数据异步刷新到templates下的`main.html`中。 * 6 如何运行:先运行utils,提前进行数据采集、数据清洗、数据存储操作,之后更改app修改好`datatable`和`job_name`,这部分信息务必与utils中输入的保持一致(因为发现app一运行的话就会直接给出网页,所以没法在控制台上同步将变量赋值过去*_*)。 * 7 温馨提示:由于我在数据采集部分使用了一个用redis搭建的代理IP池,所以一开始运行的话需要将里面的proxies删掉,使用time.sleep即可(使用代理池能防止被封IP,同时可以更快爬取数据,实现可视化操作)。 3 你将会学到** * 1 Python爬虫:盗亦有道,掌握requests和xpath的相关用法。 * 2 数据清洗:能详细知道项目中数据预处理的步骤,包括去重去缺失值、变量重编码、特征字段创造和文本数据预处理,玩转pandas、numpy相关用法。 * 3 数据库知识:select、insert等操作,掌握pymysql相关用法。 * 4 前后端知识:了解到HTML、JQuery、JavaScript、Ajax的相关用法。 * 5 Flask知识:能快速建立起一个轻量级的Web框架,利用Python实现前后端交互。
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于Flask的Python全国招聘岗位就业可视化系统源码+项目说明.zip ## **1 开发环境** - [x] 1 系统:Window 10 家庭中文版。 - [x] 2 语言:Python(3.8.5)、MySQL(5.5)。 - [x] 3 Python所需的库:flask、pymysql、pandas、numpy、time、datetime、requests、etree、jieba、re、json、decimal(没有的话pip或conda安装一下~)。 - [x] 4 编辑器:jupyter Lab(jupyter notebook)、Pycharm(主用)、Navicat。 ## **2 运行说明** 本项目下面有五个.py的文件,下面分别阐述各个文件所对应的功能:
- [x] 1 data_collection:分别从前程无忧网站和猎聘网上以关键词`job_name`爬取相关数据。其中,前程无忧爬取的数据主要用来进行相关图表的绘制;而猎聘网上主要为岗位要求文本数据,这部分进行词云的可视化展示。 - [x] 2 data_clean:对爬取到的数据进行清洗,包括去重去缺失值、变量重编码、特征字段创造、文本分词等。 - [x] 3 data_store:将清洗后的数据全部储存到`MySQL`中,其中对文本数据使用`jieba.analyse`下的`extract_tags`来获取文本中的关键词和权重大小,方便绘制词云。 - [x] 4 utils:大多为app调用MySQL数据库中的工具类函数;同时,里面也有引用data_collection、data_clean、data_store等函数,我们也主要使用该工具类进行岗位数据的爬取、清洗和存储。 - [x] 5 app:使用`Python`一个小型轻量的`Flask`框架来进行`Web`可视化系统的搭建,在static中有css和js文件,js中大多为百度开源的[ECharts](https://echarts.apache.org/examples/zh/index.html),再通过自定义`controller.js`来使用ajax调用flask已设定好的路由,将数据异步刷新到templates下的`main.html`中。 - [x] 6 如何运行:先运行utils,提前进行数据采集、数据清洗、数据存储操作,之后更改app修改好`datatable`和`job_name`,这部分信息务必与utils中输入的保持一致(因为发现app一运行的话就会直接给出网页,所以没法在控制台上同步将变量赋值过去*_*)。 - [x] 7 温馨提示:由于我在数据采集部分使用了一个用redis搭建的代理IP池,所以一开始运行的话需要将里面的proxies删掉,使用time.sleep即可(使用代理池能防止被封IP,同时可以更快爬取数据,实现可视化操作)。 ## **3 你将会学到** - [x] 1 Python爬虫:盗亦有道,掌握requests和xpath的相关用法。 - [x] 2 数据清洗:能详细知道项目中数据预处理的步骤,包括去重去缺失值、变量重编码、特征字段创造和文本数据预处理,玩转pandas、numpy相关用法。 - [x] 3 数据库知识:select、insert等操作,掌握pymysql相关用法。 - [x] 4 前后端知识:了解到HTML、JQuery、JavaScript、Ajax的相关用法。 - [x] 5 Flask知识:能快速建立起一个轻量级的Web框架,利用Python实现前后端交互。 ......
基于Python的某东商品价格监控:自定义商品价格降价邮件-微信提醒.zip 简介 用户自行设定指定商品的监控价格,运行脚本获取价格数据。 申明:本脚本没有涉及JD账号登录,没有抓取任何JD敏感信息,仅在手动执行一次脚本时会读取JD公开商品页面的商品名称和价格,如有任何敏感侵权问题,请联系我删除。 申明:本脚本没有涉及JD账号登录,没有抓取任何JD敏感信息,仅在手动执行一次脚本时会读取JD公开商品页面的商品名称和价格,如有任何敏感侵权问题,请联系我删除。 申明:本脚本没有涉及JD账号登录,没有抓取任何JD敏感信息,仅在手动执行一次脚本时会读取JD公开商品页面的商品名称和价格,如有任何敏感侵权问题,请联系我删除。 核心代码 请先使用pip install -r requirements.txt安装依赖库 你需要的仅仅只是这两个Crawler类: crawler_selenium: (推荐) 使用selenium+chrome访问某东商品单页进行爬取 crawler_js.py: 使用requests访问某东商品数据接口进行爬取 两个类下方都有测试代码,可以调试,并且都可以接入http/https代理。 代码里面包括了商品名称,副标题,PLUS价格,历史最高最低价等。 由于电商经常会更新接口,所以Crawler代码往往具有时效性,若发现代码报错不要慌,自行尝试修改。 使用selenium+chrome注意事项 需要安装chrome和chromedriver 若您使用默认的Selenium+Chrome,您还需要安装好Chrome,以及Selenium用来操控Chrome的ChromeDriver。 http://npm.taobao.org/mirrors/chromedriver/ 若您在Windows下调试本项目,可以将ChromeDriver放置在任何配置了环境变量的目录下,我放在了C:/Windows/chromedriver.exe 若您使用Js爬取,不需要任何额外的库

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧