简介:

requests模块的底层实现其实还是urllib,但是urllib并不常用

requests库简单易用

快速上手

http://docs.python-requests.org/zh_CN/latest/user/quickstart.html

常用属性import requests

url = "http://www.baidu.com"response = requests.get(url)

print(response.url)

print(response.status_code)

print(response.headers)

print(response.request.headers)

运行结果

运行结果

解释:

response.url:顾名思义,即请求的url地址

response.status_code:即响应的状态码

response.headers:响应头

response.requests.headers:响应对应的请求头,即我们在请求时带的请求头,简单来说就是浏览器识别的我们访问其网站带有的请求头,这里以请求百度为例,很明显,这里的'User-Agent': 'python-requests/2.19.1',其实就是告诉访问的url,我是python的requests访问的。print(response.content.decode())

response.content.decode():获取网页源码

案例:获取百度首页的百度图片

第一步:

百度首页

首先在百度首页的百度logo图片上点击鼠标右键,点击检查,或者按键盘上的F12,

image.png

找到这个logo的图片的src,即链接地址:

//www.baidu.com/img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png?where=superimport requests

url = "http://www.baidu.com/img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png?where=super"response = requests.get(url)with open("baidu.png", "wb") as f:

f.write(response.content)

完整代码如上,得到结果在当前的目录,即在当前目录即可以看到baidu.png这张图片了

发送带headers的请求

还记得刚才描述的headers的内容吗?response.requests.headers:响应对应的请求头,即我们在请求时带的请求头,简单来说就是浏览器识别的我们访问其网站带有的请求头,这里以请求百度为例,很明显,这里的'User-Agent': 'python-requests/2.19.1',其实就是告诉访问的url,我是python的requests访问的。

在这种情况下,浏览器是知道我们是爬虫在浏览,那么长期这么操作会导致该网站对IP进行封锁,尤其是短时间内访问量非常大的情况下,那么这个时候我们就需要对写的爬虫进行headers伪装

怎么找到headers呢?

image.png

在浏览器控制台中,找到Network,如果Network里什么都没有,点击浏览器的刷新,或者按F5刷新,即可出现内容,在内容中点击左边的第一个或者其他的都行,只要会出现这样的headers就可以,我们可以在这里面找到User-Agent,将User-Agent后面的内容复制出来,放到我们构造的headers里面。

把它构造成字典的形式,即:headers = {    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"}

完整代码如下:import requests

url = "http://www.baidu.com"headers = {    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"}

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

print(len(response.content))

感兴趣的小伙伴可以对比一下,带有headers的请求和没有带有headers的请求的区别,这个代码可以看到请求来的内容的总字节数,可以对比字节数是否一致,带headers的请求到的数据是否比不带headers的请求,请求到的数据要多?

作者:techLee

链接:https://www.jianshu.com/p/4e371297aba2

关于python中requests模块导入问题-Python中requests模块的核心使用(1)相关推荐

  1. 通过VBA将word中的表格导入到excel中

    通过VBA将word中的表格导入到excel中 由于项目需要,需要将word中的表格按照格式导入到excel中,所以通过在word中写VBA程序的方式将word的内容导出到excel中. 1.添加&q ...

  2. lisp倒入excel数据画图_Excel表格数据在cad画出图形-如何将EXCEL中的数据导入到CAD中,绘制成曲线...

    如何实现excel的数据与cad图形的关联 举个例 假如根据B2单元格中的半径画一个圆 : 打开EXCEL,在B2单元格中输个圆的半径100 按快捷Alt F11打开VBA编辑器并插入一个模块 引用C ...

  3. 将DataTable中的数据导入到数据库中

    上次在根据excel的文件的路径提取其中表的数据到DataSet中 一文中介绍了将Excel文件中的数据读取到DataSet中的方法,今天我来介绍下我曾经在项目中用到的一个将DataTable中的数据 ...

  4. C# 将List中的数据导入csv文件中

    //http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849906.html C# 将List中的数据导入csv文件中 将数据保 ...

  5. 查询oracle数据库的表格数据类型,excel表格中如何查询数据库数据类型-我想把excel表格中的数据导入oracle数据库中,想在......

    在excel表里,什么是:字段.记录.数据类型.多工... declare @t table(id numeric(18,2)) insert into @t SELECT   col1 FROM   ...

  6. 如何在ex表格导入php_怎么使用php把表格中的数据导入到excel中,php如何快速导入excel表格数据...

    php怎么导入大量数据的excel php导出数据的Excel: PHP从数据库分多次读取100万行记录,和分将100万入文本文件都没问题 Excel可以支100万行记录,Excel 2003最大支持 ...

  7. 将dblp中的文件导入到endnote中

    将dblp中的文件导入到endnote中 复制要导入的论文题目到dblp中搜索 点击第一个按钮的第一个链接 跳转后页面点击cite 点击1 Endnote,然后点击2下载. 此时并没有下载文件,页面跳 ...

  8. 如何将skp文件中的模型导入到UE4中

    首先,skp文件是不能直接导入到UE4中的. 解决方法:用SketchUp(草图大师)打开skp文件,在SketchUp中将模型转换成fbx格式,然后再将模型导入UE4中 目录 1.打开skp文件 2 ...

  9. lisp倒入excel数据画图_如何将EXCEL中的数据导入到CAD中,绘制成曲线|

    如何将EXCEL中的数据导入到CAD中,绘制成曲线 如果不用软件,只用CAD自身功能的话可以通过多段线生成你需要的曲线.你给出你的曲线函数,我给你生成曲线坐标以及CAD能自动绘制的文件格式 怎样将ca ...

  10. 将mysql中的数据导入到sqlite3中

    不知道如何创建数据库的可以先看这篇: https://blog.csdn.net/blackei/article/details/80403272 当我们使用固定的信息时,比如省市信息,区划代码,物品 ...

最新文章

  1. easyui在IE中: SCRIPT1003: 缺少 ':'
  2. JAVA连接数据库使用的API是什么呢,如何使用JDBC API在Java中建立数据库连接?
  3. Silverlight 控件开发记录之 extern alias” 关键字
  4. tableau必知必会之用 Fixed 函数实现客户回购分析
  5. STL 之find,find_if,find_end,find_first_of
  6. 取消选中目标CALL
  7. APP自动化测试系列之3种元素定位工具
  8. python 删除指定时间之前文件的脚本 包括下级目录
  9. JavaScript-取消事件-e.preventDefault();
  10. linux基础命令_Linux编程基础:常用命令
  11. Java之POI操作,封装ExcelUtil实现Excel导入导出
  12. Leetcode五大常用算法
  13. 四叶草启动linux黑屏,E1-471G,黑苹果10.11,Clover无法进入安装界面,直接黑屏重启...
  14. EXT2/EXT3文件系统
  15. DTCC 年度最佳创新产品丨真正的 HTAP 数据库是怎样炼成的?
  16. c语言输入一个数判断是否是同构数,c语言:编写函数判断x是否同构数
  17. 防御DDoS措施抓住这一要点,让你从此不再为DDoS头疼
  18. java libmp3lame_录制MP3格式的音频( lame 库的编译及使用)
  19. 如何迅速练好英语口语?
  20. 前端总结·基础篇·CSS

热门文章

  1. uwsgi gevent
  2. jeecms v9 vue环境搭建
  3. 数据结构与算法之美02
  4. SSO单点登录之——JWT
  5. C语言博客作业03--函数
  6. 使用cmd打开java文件,报错:“错误,编码GBK的不可映射字符”
  7. 《python源码剖析》,看看
  8. nodejs入门教程之http的get和request简介及应用
  9. java_method_下拉框成json
  10. 关于eclpse java项目与tomcat jdk版本不一致的解决方法