第0步:

获取数据:通过requests库来获取数据

Windows电脑里叫命令提示符(cmd),输入pip install requests 即可,requests库可以帮我们下载网页源代码、文本、图片,甚至是音频。

requests.get()用法

import requests
#引入requests库
res = requests.get('URL')
#requests.get是在调用requests库中的get()方法,它向服务器发送了一个请求,括号里的参数是你需要的数据所在的网址,然后服务器对请求作出了响应。
#我们把这个响应返回的结果赋值在变量res上。

res是一个对象,response通常有四种属性,

response.content,它能把Response对象的内容以二进制数据的形式返回,适用于图片、音频、视频的下载。

假如想要下载一个图片,可以这样写

import requests
res = requests.get('https://res.pandateacher.com/2018-12-18-10-43-07.png')
#发出请求,并把返回的结果放在变量res中
pic=res.content
#把Reponse对象的内容以二进制数据的形式返回
photo = open('ppt.jpg','wb')
#新建了一个文件ppt.jpg,这里的文件没加路径,它会被保存在程序运行的当前目录下。
#图片内容需要以二进制wb读写。
photo.write(pic)
#获取pic的二进制内容
photo.close()
#关闭文件

response.text,这个属性可以把Response对象的内容以字符串的形式返回,适用于文字、网页源代码的下载。

例:
import requests
#引用requests库
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/sanguo.md')
#下载《三国演义》第一回,我们得到一个对象,它被命名为res
novel=res.text
#把Response对象的内容以字符串的形式返回
k = open('《三国演义》.txt','a+')
#创建一个名为《三国演义》的txt文档,指针放在文件末尾,追加内容
k.write(novel)
#写进文件中
k.close()
#关闭文档

res.encoding能定义Response对象的编码类型

那在真实的情况中,我们该在什么时候用res.encoding呢?

首先,目标数据本身是什么编码是未知的。用requests.get()发送请求后,我们会取得一个Response对象,其中,requests库会对数据的编码类型做出自己的判断。但是!这个判断有可能准确,也可能不准确。

如果判断准确的话,我们打印出来的response.text的内容就是正常的、没有乱码的,那就用不到res.encoding;如果判断不准确,就会出现一堆乱码,那我们就可以去查看目标数据的编码,然后再用res.encoding把编码定义成和目标数据一致的类型即可。

总的来说,就是遇上文本的乱码问题,才考虑用res.encoding.

Python学习之爬虫基础相关推荐

  1. python 3.x 爬虫基础---http headers详解

    python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 python 3.x 爬虫基础---Requer ...

  2. Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python

    Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python? 人生苦短,我用Python!!!短短几个字,现在在各大学习类平台随处 ...

  3. Python学习网络爬虫--转

    原文地址:https://github.com/lining0806/PythonSpiderNotes Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 另外,比较常用的爬虫框架Scra ...

  4. Python学习day16-模块基础

    <!doctype html>day16 - 博客 Python学习day16-模块基础模块的四种形式import和from-import循环导入模块的搜索路径Python文件的两种用途 ...

  5. Python学习笔记_1_基础_2:数据运算、bytes数据类型、.pyc文件(什么鬼)

    Python学习笔记_1_基础_2:数据运算.bytes数据类型..pyc文件(什么鬼) 一.数据运算 Python数据运算感觉和C++,Java没有太大的差异,百度一大堆,这里就不想写了.比较有意思 ...

  6. Python学习日记-day1基础篇 字符 输出 注释

    Python学习日记-day1基础篇 字符 输出 注释 by北栀一刺 # -*- coding: utf-8 -*- """ Spyder EditorThis is a ...

  7. python学习课程 0基础学Python视频教程

    python学习课程,零基础Python初学者应该怎么去学习Python语言编程?python学习路线这里了解一下吧.想python学习课程?学习路线网免费下载海量python教程,上班族也能在家自学 ...

  8. Python学习之爬虫(一)--获取论坛中学生获得offer信息

    Python学习之爬虫(一)–获取论坛中学生获得offer信息 目的:爬取帖子中每个学生的offer信息,并保存在Excel文档中. 爬取结果 过程 1. 爬取每个帖子中学生offer信息 1.1 查 ...

  9. Python应用实战- 爬虫基础入门知识必会

    0.爬虫基础流程 把爬虫的过程模块化,基本上可以归纳为以下几个步骤: [√] 分析网页URL:打开你想要爬取数据的网站,然后寻找真实的页面数据URL地址: [√] 请求网页数据:模拟请求网页数据,这里 ...

最新文章

  1. Unity Shaders
  2. 从公司发展看技术人才需求
  3. java 浅拷贝和深拷贝
  4. 清北学堂(2019 4 28 ) part 1
  5. 平台策略:从Portlet到OpenSocial小工具再到渐进式Web应用程序:最新技术
  6. 如何用css设计出商品购物图片
  7. 电源变换适用于非独立源码_适用于非None测试的Python程序
  8. HTML的标签、属性大整理
  9. Leetcode 1015. Smallest Integer Divisible by K
  10. 访问远程Visdom
  11. 【调参】如何为神经网络选择最合适的学习率lr-LRFinder-for-Keras
  12. 数商云SCM供应链管理系统:辅助传统行业SCM系统管理数字化转型、智能化决策
  13. Visio如何绘制数据流图
  14. 蓝桥杯常用代码模板总结(C/C++)
  15. 【论文合集】2022年10月医学影像期刊论文合集
  16. 计算机数学基础 周密,一位计算机牛人的心得谈计算机和数学免费.doc
  17. 计算机桌面闪烁,电脑屏幕总是闪烁怎么办?这样就能解决
  18. AtCoder Beginner Contest 285 青大蒟蒻训练日常(A-F) 上分场(可惜unr)
  19. Codevs3008 加工生产调度
  20. 计算机网络-网络应用(上)

热门文章

  1. 8.7 存储容量的计算
  2. #力扣LeetCode720. 词典中最长的单词 @FDDLC
  3. typescript error TS2322: Type ‘Timeout‘ is not assignable to type ‘number‘.
  4. stm32 变频器原理图,PCB板,源程序,配监控软件,vF控制,精密采样
  5. BSP和B2B电子客票怎么区分
  6. sina 新浪期货数据接口API
  7. opencv 学习------显示图片程序
  8. 192.168.0.1手机登录wifi设置改密码
  9. 删除了mysql的root账户密码是什么_mysql误删root用户或者忘记root密码解决方法
  10. MATLAB指纹识别系统GUI界面实现