Python学习之爬虫基础
第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学习之爬虫基础相关推荐
- python 3.x 爬虫基础---http headers详解
python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 python 3.x 爬虫基础---Requer ...
- Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python
Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python? 人生苦短,我用Python!!!短短几个字,现在在各大学习类平台随处 ...
- Python学习网络爬虫--转
原文地址:https://github.com/lining0806/PythonSpiderNotes Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 另外,比较常用的爬虫框架Scra ...
- Python学习day16-模块基础
<!doctype html>day16 - 博客 Python学习day16-模块基础模块的四种形式import和from-import循环导入模块的搜索路径Python文件的两种用途 ...
- Python学习笔记_1_基础_2:数据运算、bytes数据类型、.pyc文件(什么鬼)
Python学习笔记_1_基础_2:数据运算.bytes数据类型..pyc文件(什么鬼) 一.数据运算 Python数据运算感觉和C++,Java没有太大的差异,百度一大堆,这里就不想写了.比较有意思 ...
- Python学习日记-day1基础篇 字符 输出 注释
Python学习日记-day1基础篇 字符 输出 注释 by北栀一刺 # -*- coding: utf-8 -*- """ Spyder EditorThis is a ...
- python学习课程 0基础学Python视频教程
python学习课程,零基础Python初学者应该怎么去学习Python语言编程?python学习路线这里了解一下吧.想python学习课程?学习路线网免费下载海量python教程,上班族也能在家自学 ...
- Python学习之爬虫(一)--获取论坛中学生获得offer信息
Python学习之爬虫(一)–获取论坛中学生获得offer信息 目的:爬取帖子中每个学生的offer信息,并保存在Excel文档中. 爬取结果 过程 1. 爬取每个帖子中学生offer信息 1.1 查 ...
- Python应用实战- 爬虫基础入门知识必会
0.爬虫基础流程 把爬虫的过程模块化,基本上可以归纳为以下几个步骤: [√] 分析网页URL:打开你想要爬取数据的网站,然后寻找真实的页面数据URL地址: [√] 请求网页数据:模拟请求网页数据,这里 ...
最新文章
- Unity Shaders
- 从公司发展看技术人才需求
- java 浅拷贝和深拷贝
- 清北学堂(2019 4 28 ) part 1
- 平台策略:从Portlet到OpenSocial小工具再到渐进式Web应用程序:最新技术
- 如何用css设计出商品购物图片
- 电源变换适用于非独立源码_适用于非None测试的Python程序
- HTML的标签、属性大整理
- Leetcode 1015. Smallest Integer Divisible by K
- 访问远程Visdom
- 【调参】如何为神经网络选择最合适的学习率lr-LRFinder-for-Keras
- 数商云SCM供应链管理系统:辅助传统行业SCM系统管理数字化转型、智能化决策
- Visio如何绘制数据流图
- 蓝桥杯常用代码模板总结(C/C++)
- 【论文合集】2022年10月医学影像期刊论文合集
- 计算机数学基础 周密,一位计算机牛人的心得谈计算机和数学免费.doc
- 计算机桌面闪烁,电脑屏幕总是闪烁怎么办?这样就能解决
- AtCoder Beginner Contest 285 青大蒟蒻训练日常(A-F) 上分场(可惜unr)
- Codevs3008 加工生产调度
- 计算机网络-网络应用(上)
热门文章
- 8.7 存储容量的计算
- #力扣LeetCode720. 词典中最长的单词 @FDDLC
- typescript error TS2322: Type ‘Timeout‘ is not assignable to type ‘number‘.
- stm32 变频器原理图,PCB板,源程序,配监控软件,vF控制,精密采样
- BSP和B2B电子客票怎么区分
- sina 新浪期货数据接口API
- opencv 学习------显示图片程序
- 192.168.0.1手机登录wifi设置改密码
- 删除了mysql的root账户密码是什么_mysql误删root用户或者忘记root密码解决方法
- MATLAB指纹识别系统GUI界面实现