最近在爬SDFDA的数据,刚开始用urllib.request 库,一直连不到数据 ;

后来通过CHROME浏览器的F12,发现该 网站用的是JSON格式{}'Content-Type': 'application/json',},不同于以往的提交方式“Content-Type: text/html; charset=utf-8"

试了各种方法 ,一直不能取得数据。

看的许多介绍方法中有用“requests”库的,一试果然简单方便,可以直接发送JSON格式的数据参数;下载安装后,导入“import resquest”

很快以往的问题得到解决,能将想要页面内容读取出来,但显示的是\u9882十六进制的编码,没有办法继续“百度”,

发现了requests库中的,content 属性和JSON属性,一试果然见效;

查了下资料:

resp.text返回的是Unicode型的数据。 
resp.content返回的是bytes型的数据。 
也就是说,如果你想取文本,可以通过r.text。 
如果想取图片,文件,则可以通过r.content。 
(resp.json()返回的是json格式数据)

#-*- coding:utf-8 -*-
#读取山东FDA的药品GSP认证经营企业数据
# 20161128 zhangshaohua
import re
import requests
import json #读取首页
url = 'http://124.128.39.251:9080/sdfdaout/jsp/datasearch/searchinfolist.jsp?pageSize=10&entType=drugGSP&thisPage=1'
url = 'http://124.128.39.251:9080/sdfdaout/jsp/datasearch/searchinfolist.jsp?pageSize=10&thisPage=2&entType=drugGSP'
#url = 'http://124.128.39.251:9080/sdfdaout/jsp/datasearch/searchinfolist.jsp?pageSize=10&thisPage=12&entType=drugGSP'
#取总记录数,每页20条#zjls = getContent(url,'共(\d{1,5})页','UTF-8')
headers = {
'Host': '124.128.39.251:9080',
'Proxy-Connection': 'keep-alive',
'Content-Length': '256',
'Origin': 'http://124.128.39.251:9080',
'X-Requested-With': 'XMLHttpRequest',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',
'Content-Type': 'application/json',
'Accept': '*/*',
'Referer': 'http://124.128.39.251:9080/sdfdaout/jsp/datasearch/searchinfolist.jsp',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.8', } url = 'http://124.128.39.251:9080/sdfdaout/command/ajax/com.lc.datasearch.cmd.SearchInfoQueryCmd'
parms = {"params":{"javaClass":"org.loushang.next.data.ParameterSet","map":{"limit":10,"start":10,"entType":"drugGSP","defaultSort":{"javaClass":"ArrayList","list":[]},"dir":"ASC","needTotal":True},"length":7},"context":{"javaClass":"HashMap","map":{},"length":0}}
values = json.dumps(parms)
req = requests.post(url,data=values,headers=headers)
content = req.json() print(content) print(type(content)) print('药品零售企业读取完成!')

  学习路上的坑还没有完。

一直在PYTHON 客户端中试的好好的,一到CMD执行程序就变成了以上的提示;认真对比了两边的代发现:

content = req.json 和

content = req.json()

带()返回的是JSON的数据,req.json 只返回类型为method 的一个提示;

python 3 关于requests库的 text / content /json的更多相关文章

  1. python下载安装requests库

    一.python下载安装requests库 1.到git下载源码zip源码https://github.com/requests/requests 2.解压到python目录下: 3.“win+R”进 ...

  2. Python爬虫之requests库介绍(一)

    一:Requests: 让 HTTP 服务人类 虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 ...

  3. Python语言之requests库

    发送请求.传递URL参数.定制headers.接受数据,处理数据等 在Java中用httpclient jar包,在Python中用requests库,即使没有事先下载,在Pycharm开发工具中,出 ...

  4. Python爬虫:requests 库详解,cookie操作与实战

    原文 第三方库 requests是基于urllib编写的.比urllib库强大,非常适合爬虫的编写. 安装: pip install requests 简单的爬百度首页的例子: response.te ...

  5. Python爬虫之requests库的使用

    requests库 虽然Python的标准库中 urllib模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests宣传是 "HTTP for ...

  6. 【Python爬虫】Requests库的基本使用

    Requests库的基本使用 阅读目录 基本的GET请求 带参数的GET请求 解析Json 获取二进制数据 添加headers 基本的POST请求 response属性 文件上传 获取cookie 会 ...

  7. python爬虫之requests库

    在python爬虫中,要想获取url的原网页,就要用到众所周知的强大好用的requests库,在2018年python文档年度总结中,requests库使用率排行第一,接下来就开始简单的使用reque ...

  8. python接口自动化测试 - requests库的基础使用

    简单介绍 requests库简单易用的HTTP库 Get请求 格式: requests.get(url) 注意:若需要传请求参数,可直接在 url 最后的 ? 后面,也可以调用 get() 时多加一个 ...

  9. python爬虫(1)requests库

    在pycharm中安装requests库的一种方法 首先找到设置 搜索然后安装,蓝色代表已经安装 requests库中的get请求 与HTTP协议相对应,requests库也有七种请求方式. 获取ur ...

随机推荐

  1. Linux下将MySQL服务添加到服务器的系统服务中

    Linux下将MySQL服务添加到服务器的系统服务中 Linux环境下将MySQL服务添加到服务器的系统服务中 1.了解MySQL程序路径 MySQL数据目录: /home/mysql/dataMyS ...

  2. MVC中的Controller中返回一个JsonResult在弹出一个下载框?

    public JsonResult ReturnTest() { return Json(new {myMsg ="hello world"}, "text/html; ...

  3. 检索COM 类工厂中CLSID 为{00024500-0000-0000-C000-000000000046}组件时失败

    检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005 当在ASP.NET应用程序中引 ...

  4. apache 启动脚本加入系统服务列表

    第一步:cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd第二步:vim /etc/init.d/httpd在第一行#!/bin/sh下增加两行 ...

  5. linux字符设备文件的打开操作

    2.7  字符设备文件的打开操作(1) 作为例子,这里假定前面对应于/dev/demodev设备节点的驱动程序在自己的代码里实现了如下的struct file_operations对象fops: st ...

  6. log4j教程 1、概述

    log4j是一个用Java编写的可靠,快速和灵活的日志框架(API),它在Apache软件许可下发布.    Log4j已经被移植到了C,C++,C#,Perl,Python和Ruby等语言中.   ...

  7. 使navicat可以通过SSH连接MySQL数据库

    1.编辑/etc/ssh/sshd_config,在最下面添加如下语句 KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libss ...

  8. Redis源代码分析(十三)--- redis-benchmark性能測试

    今天讲的这个是用来给redis数据库做性能測试的,说到性能測试,感觉这必定是高大上的操作了.redis性能測试.測的究竟是哪方面的性能,怎样測试,通过什么指标反映此次測试的性能好坏呢.以下我通过源代码 ...

  9. 9.11排序与查找(一)——给定两个排序后的数组A和B,当中A的末端有足够的缓冲空间容纳B。将B合并入A并排序

    /**  * 功能:给定两个排序后的数组A和B,当中A的末端有足够的缓冲空间容纳B.将B合并入A并排序. */ /** * 问题:假设将元素插入数组A的前端,就必须将原有的元素向后移动,以腾出空间. ...

  10. 在MyEclipse上安装GIT插件EGit

    MyEclipse2016 CI 下载地址:http://pan.baidu.com/s/1gfBw9Ab 1.“Help”->"Install from Site" 2.在 ...