使用requests请求网页时,返回的页面信息有时是乱码,如下代码

学习python中有什么不懂的地方,小编这里推荐加小编的python学习群:895,817, 687
有任何不懂的都可以在里面交流,还有很好的视频教程pdf学习资料,大家一起学习交流!headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
}
def get_all(url,key):params = {'keyword':key,'enc':'utf-8'}response = requests.get(url=url,params=params,headers=headers)with open('jd.html','w',encoding='utf-8') as f:f.write(response.text)if __name__ == '__main__':key = input('输入搜索内容:')url = 'https://search.jd.com/Search?'get_all(url,key)

返回的部分内容;

<div class="p-name p-name-type-2"><a target="_blank" title="æžåœ°ä¼ è¯´çŸ­è¢–T恤男夏季韩版潮流短袖男士半袖tæ¤åœ†é¢†ä¼‘é—²ä¿®èº«å¤§ç äº”åˆ†è¢–æ½®ç‰Œé’å¹´å­¦ç”Ÿt恤衣服男è£430黄色 M" href="//item.jd.com/51029271063.html" οnclick="searchlog(1,51029271063,8,1,'','flagsClk=1077936264')"><em>æžåœ°ä¼ è¯´çŸ­è¢–T恤<font class="skcolor_ljg">ç”·</font>夏季韩版潮流短袖男士半袖tæ¤åœ†é¢†ä¼‘é—²ä¿®èº«å¤§ç äº”åˆ†è¢–æ½®ç‰Œé’å¹´å­¦ç”Ÿt恤衣服<font class="skcolor_ljg">ç”·è£
</font> 430黄色 M</em><i class="promo-words" id="J_AD_51029271063"></i></a></div>

解决方法和思路过程;

代码;

def get_all(url,key):params = {'keyword':key,'enc':'utf-8'}response = requests.get(url=url,params=params,headers=headers)# 打印出所请求页面返回的编码方式print(response.encoding)# response.apparent_encoding是通过内容分析出的编码方式,这里是urf-8print(response.apparent_encoding)# 转码content = response.text.encode(response.encoding).decode(response.apparent_encoding)print(content)with open('jd.html','w',encoding='utf-8') as f:f.write(content)if __name__ == '__main__':key = input('输入搜索内容:')url = 'https://search.jd.com/Search?'get_all(url,key)

控制台输出(部分);

E:\anaconda\python.exe E:/练习/最后阶段/0808/jd.py
输入搜索内容:男装
ISO-8859-1
utf-8
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="renderer" content="webkit">
<meta http-equiv="Cache-Control" content="max-age=300" />
<link rel="dns-prefetch" href="//search.jd.com" /><link rel="dns-prefetch" href="//item.jd.com" /><link rel="dns-prefetch" href="//list.jd.com" /><link rel="dns-prefetch" href="//p.3.cn" /><link rel="dns-prefetch" href="//misc.360buyimg.com" /><link rel="dns-prefetch" href="//nfa.jd.com" /><link rel="dns-prefetch" href="//d.jd.com" /><link rel="dns-prefetch" href="//img12.360buyimg.com" /><link rel="dns-prefetch" href="//img13.360buyimg.com" /><link rel="dns-prefetch" href="//static.360buyimg.com" /><link rel="dns-prefetch" href="//csc.jd.com" /><link rel="dns-prefetch" href="//mercury.jd.com" /><link rel="dns-prefetch" href="//x.jd.com" /><link rel="dns-prefetch" href="//wl.jd.com" /><title>男装 - 商品搜索 - 京东</title><meta name="Keywords" content="男装,京东男装" /><meta name="description" content="在京东找到了260867件男装的类似商品,其中包含了“男装”等类型的男装的商品。" /><script>
window.loadFa_toJson_data={query:'%E7%94%B7%E8%A3%85'};
window.jdpts={};jdpts._st=new Date().getTime();window.pageConfig={closeJpg : 1,compatible: false,searchType: 0,jdfVersion: '2.0.0',floatnav: 1,price_pdos_off: 0,actName: '',pSource: 'search_pc',queryParam: {c1: 0,c2: 1342,c3: 0,brand: '',price: '',keyword: '男装',page: '1'}
};
window.searchUnit={resizeOnebox: function(g,f,j){var g=parseInt(g),i=typeof f,h=typeof j;if(!isNaN(g)){if("string"==i&&f!=""&&g>0){$("#J_oneBoxFrame_"+f).css("height",g+10);h=="function"&&j()}else{if(i=="undefined"||i=="function"){$("#virtualWareIFrame").css("height",g>0?g+10:0);i=="function"&&f()}}}},resizeShopbox: function(e,d){var f=0;switch(e){case 1:case 2:f=145;break;case 3:f=75;break;case 4:f=80;break;default:break}f&&$("#shopboxIFrame").css("height",f).show();typeof(d)=="string"&&(new Image().src=d)},coupon: {}};
window.QUERY_KEYWORD='男装';
window.REAL_KEYWORD='男装';
</script>
<link type="text/css" rel="stylesheet" href="//misc.360buyimg.com/??jdf/1.0.0/unit/ui-base/5.0.0/ui-base.css,jdf/1.0.0/unit/shortcut/5.0.0/shortcut.css,jdf/1.0.0/unit/global-header/5.0.0/global-header.css,jdf/1.0.0/unit/myjd/5.0.0/myjd.css,jdf/1.0.0/unit/nav/5.0.0/nav.css,jdf/1.0.0/unit/shoppingcart/5.0.0/shoppingcart.css,jdf/1.0.0/unit/global-footer/5.0.0/global-footer.css,jdf/1.0.0/unit/service/5.0.0/service.css,jdf/1.0.0/unit/global-header-photo/5.0.0/global-header-photo.css,jdf/1.0.0/ui/area/1.0.0/area.css" />
<link type="text/css" rel="stylesheet" href="//misc.360buyimg.com/product/search/1.0.7/css/search.css" />
<script type="text/javascript" src="//misc.360buyimg.com/??jdf/1.0.0/unit/base/5.0.0/base.js,jdf/lib/jquery-1.6.4.js,product/module/es5-shim.js"></script>
<script>
window.SEARCH = {cid: 1349,ui_ver: '1.0.7',c_category: 1342,p_category: 0,enable_adv: 1,enable_prom_adwords: 1,enable_prom_flag: 1,enable_price: 1,enable_stock: 2,enable_yyk: 0,lottery_code: '',is_correct_hash: function(e){var a=["keyword","brand_id","activity_id","coupon_batch","ecard_id"];for(var c=0,b=a.length;c<b;c++){var d=new RegExp("(^|\\?|&)"+a[c]+"=([^&]*)(\\s|&|$)");if(d.test(e)){return true}}return false},get_real_hash: function(){var a=window.location.hash.substr(1);if(a&&$.browser.mozilla){return location.href.substr(location.href.indexOf("#")+1)}else{return a}}
};
(function(a,b){var c=b.get_real_hash();if(b.is_correct_hash(c)){a.location.href=a.location.pathname+"?"+c;return false}else{if(a.self!=a.top||$.browser.msie&&$.browser.version<=9){var f=null,e=function(){var d=$(a).width();return 1210>d?$("html").removeClass():$("html").removeClass().addClass(d>=1210&&1390>d?"resp01":"resp02"),true};e();$(a).resize(function(){clearTimeout(f),f=setTimeout(e,20)})}}})(window,SEARCH);
</script>
</head>
<body>
<!--shortcut start-->
<div id="shortcut-2014"><div class="w"><ul class="fl"><li id="ttbar-home"><i class="iconfont">&#xe608;</i><a href="//www.jd.com/" target="_blank">京东首页</a></li><li class="dorpdown" id="ttbar-mycity"></li></ul>

补充,方法二;

response = requests.get(url=url, headers=headers)etrees = etree.HTML(response.content.decode("gb18030"))

使用requests请求网页时,返回的页面信息有时是乱码,如下代码相关推荐

  1. python requests请求获得response返回的header信息

    header = {'Content-Type': 'application/json;charset=UTF-8'}body = {'un': 'dafdas', 'pw': 'fasdasfa'} ...

  2. 请求网页时,怎么给我返回了一段 JavaScript 代码

    今天给大家带来的是一个论坛网站,牛仔俱乐部-努比亚社区, 网址为:https://bbs.nubia.cn/ 如果你想要获取这个网站的源代码的话,必须要先获取一个 cookie,其字段名为:acw_s ...

  3. python爬取网页时返回http状态码HTTP Error 418以及如何查看自己的User-Agent

    ** 问题:urllib.error.HTTPError: HTTP Error 418: ** 问题描述:当我使用Python的request爬取网页时返回了http状态码为418, 错误描述:经过 ...

  4. day02 requests请求库爬取豆瓣电影信息+selenium请求库

    一. requests请求库爬取豆瓣电影信息 - 请求url http://movie.douban.com/top250 - 请求方式 GET - 请求头 user-agent    cookies ...

  5. http 请求(tomcat) 返回 错误页面信息

    http 请求,返回错误信息的html 页面: try{while (true) {while (reader.ready()) {String buf = null;while ((buf = re ...

  6. Curl请求错误时返回错误编码含义

    原网站地址https://curl.haxx.se/libcurl/c/libcurl-errors.html 以下为翻译: 几乎所有"简单"的接口函数都会返回一个CURLcode ...

  7. 【各个状态码代表的含义】访问Http网页接口返回状态码信息大全:1XX,2XX,3XX,4XX,5XX

    1xx:信息 1xx:信息 消息 描述 100 Continue 服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求. 101 Switching Protocols ...

  8. Python使用request包请求网页乱码解决方法

    使用requests请求网页时,返回的页面信息有时是乱码,如下代码 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) Appl ...

  9. python requests下载网页_python爬虫 requests-html的使用

    一 介绍 Python上有一个非常著名的HTTP库--requests,相信大家都听说过,用过的人都说非常爽!现在requests库的作者又发布了一个新库,叫做requests-html,看名字也能猜 ...

最新文章

  1. _00021 尼娜抹微笑伊拉克_谁的的最离奇的异常第二阶段 Jedis pool.returnResource(jedis)...
  2. 机器学习与优化基础(Machine Learning and Optimization)
  3. kafka与zookeeper关系
  4. AzureDirectory Library for Lucene.Net
  5. python返回错误提示_python 错误处理
  6. 怎样把 Boot Camp 里 Windows 的色温调节得和 Mac OS X 一致
  7. 页面布局与编写(续2)
  8. 模板:k短路(可并堆)
  9. 微信小程序 网络请求之设置合法域名
  10. 中科院教授:科技界已几乎沦为名利场...
  11. 手把手教你用ECharts画饼图和环形图
  12. 人穷的时候,最看不起自己的是谁?
  13. Linux深度系统卡在开机界面,deepin开机卡死在logo页面解决方案
  14. 论文翻译 SLAM综述
  15. ( 科来网络分析系统 )简单的抓包步骤,具体的后面文章说
  16. C++ CURL使用
  17. 两个比较好的ooc(面向对象c语言编程)库
  18. ls、du命令的用法
  19. JavaScript 入门
  20. 思考模式:六顶思考帽(Six Thinking Hats)

热门文章

  1. MySQL【环境搭建 03】腾讯云 Linux 环境踩坑 loading shared libraries: libnuma.so.1 + quit without updating PID file
  2. 02 | 服务治理:Nacos 如何实现微服务服务治理
  3. python 化学结构_PyOrganic
  4. 什么是连续潮流cpf_2019童装秋冬潮流趋势报告:一文读懂童装潮流四大消费趋势...
  5. 2021超详细的Dart语言基础总结~你值得拥有~
  6. java向指定文件写入内容
  7. ZOJ 1292 Integer Inquiry
  8. BugKuCTF WEB 点击一百万次
  9. WEBMIN在命令行下的安装
  10. hibernate_day03_一对多相关操作