python爬虫:爬虫的简单介绍及requests模块的简单使用

一点点的建议:

(学习爬虫前建议先去了解一下前端的知识,不要求很熟悉,差不多入门即可学习爬虫,如果有不了解的,我也会补充个一些小知识.)

(了解一些前端的知识对于学习爬虫有很大的帮助.)

这边还是先说一下,作者使用pycharm,推荐这个软件,因为这个文本编译器,有很多优秀的功能,对于新手也是非常友好的。(以后如果工作,可能是写python的程序员,用到这个软件的频率也是很高的。)

————————————————————————————————————————————————————————————————

一个问题:

question: 为什么我们编写爬虫就可以获取网页里的各种数据,代码 ?

我们使用浏览器上网,来获取网页,从而来获得我们想要的内容,

而我们编写爬虫,其实就是模拟浏览器上网,来获取网页中我们想要的内容。

1.一点介绍

requests 模块:

requests 模块是爬虫的最重要的部分之一,我们通过这个模块,来获取网页的数据,

像我们比如说,要获取某个网页的网页源码,或者是要爬取B站的某个up主的粉丝数,

或者你为了能够在一些网站白嫖某些小说,就用到了requests模块,

(注:为了获取网页的数据,requests模块并不是唯一的,在python中还有urllib模块,

也可以获取网页数据,但是urllib模块相对比较老,且不比requests模块方便,所以作者在这边选择requests模块。)


2.requests模块学习

一点前端知识:

http的请求类型有很多种,我们写爬虫时主要是用到post和get这两种。(其他的也有用,暂时不做介绍)

简单说一下,暂时就先知道get可以直接获取网页的内容,

但是有些网页的加载,需要用户输入参数才能动态加载出来,所以就比较需要post,它可以携带一些参数,从而返回我们想要的内容。


在导入requests模块后,我们就可以使用里面的对象来实现我们的要求。

requests.get(url="...",headers=...):这个函数可以返回我们想要的数据,不过返回的是一个对象,我们要自己定义个对象来承接,然后可以将其重构成我们想要的格式。

requests.post(url="...",headers=...,params=...):这个跟get差不多,区别是后面params携带的是你要的参数。(比如你要做一个翻译器,params就可以是你要翻译的内容。)

url就是你要爬取的网址,像headers的话,就是用来包装你的爬虫,让你的爬虫伪装成浏览器,(因为大部分的网站,会有反爬机制,他不想让爬虫来爬取自己的内容,所以我们就需要包装一下我们的爬虫。)这样就可以成功爬取网页。


爬虫的步骤:(怎么写爬虫)

一般来说,爬虫的步骤,可以概括为,指定url,获取网页内容,解析网页内容,最后进行存储。然后比如你要做一些特定需求的爬虫,也是在这些步骤之上,做些变化而已。

实战1:爬取搜狗搜索的网页代码。

<1>安装包

在自己电脑的终端输入"pip install requests"即可成功安装requests包。

<2>开始写代码

(自己写,这边贴作者代码,还有就是这边爬取这个搜狗的代码,不需要用到headers包装。)

爬取完了之后,作者是存到了自己的文件夹下面,然后打开 搜狗.html ,我们就可以看到网页的源码了。

如下图:

看起来是不是很抽象,看不懂,我们这时候,只要用编译器打开你爬取回来的网页代码,就可以看见你爬取回来的,是不是正确的网页源码。

比如这个搜狗的搜索网页:

在这里这一句,就可以充分表明,是你自己本地的网页,而不是自己又打开了搜狗搜索的网页。

<3>最后讲两句

爬虫要学习的内容还有很多,这里只是入入门,打个样让大家尝试一下,给大家一个大致印象,接下来需要更多练习跟学习来学爬虫。可以多上上视频网站看看。

(作者的更新周期很长,平常可能记起来要写博客才写的)

python爬虫:爬虫的简单介绍及requests模块的简单使用的更多相关文章

  1. Python基础笔记系列十二:requests模块的简单应用

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! httpbin httpbin这个网站能测试 HTTP 请求和响应的各种信 ...

  2. python 全栈开发,Day134(爬虫系列之第1章-requests模块)

    一.爬虫系列之第1章-requests模块 爬虫简介 概述 近年来,随着网络应用的逐渐扩展和深入,如何高效的获取网上数据成为了无数公司和个人的追求,在大数据时代,谁掌握了更多的数据,谁就可以获得更高的 ...

  3. 进程、requests模块的简单使用

    一.进程 1.进程间数据不共享 import multiprocessing data_list = [] def task(arg): data_list.append(arg) print(dat ...

  4. 爬虫学习笔记(三)requests模块使用

    前面在说爬虫原理的时候说了,就写代码自动化的获取数据,保存下来数据,那怎么写代码来请求一个网址,获取结果呢,就得用requests模块了. 这篇博客说一下requests模块的使用,requests模 ...

  5. 接口测试简单介绍、及jmeter的简单使用

    1.接口测试简单介绍 接口测试其实就是功能测试,是从数据库查询到数据,返回查询结果 接口返回的数据都是json,json是一种通用的数据类型. 接口测试的优点:能在稍微偏底层的地方发现bug,越底层发 ...

  6. Python图形图像处理库的介绍之Image模块

    http://onlypython.group.iteye.com/group/wiki/1372-python-graphics-image-processing-library-introduce ...

  7. httprunner3源码解读(1)简单介绍源码模块内容

    前言 最近想着搭建一个API测试平台,基础的注册登录功能已经完成,就差测试框架的选型,最后还是选择了httprunner,github上已经有很多开源的httprunner测试平台,但是看了下都是基于 ...

  8. 爬虫简介与requests模块

    爬虫简介与requests模块 一 爬虫简介 概述 网络爬虫是一种按照一定规则,通过网页的链接地址来寻找网页的,从网站某一个页面(通常是首页)开始,读取网页的内容,找到网页中的其他链接地址,然后通过这 ...

  9. requests库的使用、安装及方法的简单介绍

    requests库的使用.安装及方法的简单介绍 1.requests库的概述 requests库是一个简洁且简单的处理HTTP请求的第三方库,是公认的最好获得第三方信息的库. requests库更多信 ...

随机推荐

  1. springBoot--原理分析

    起步依赖分析 分析spring-boot-starter-parent 按住Ctrl点击pom.xml中的spring-boot-starter-parent,跳转到了spring-boot-star ...

  2. python实现--九九乘法表

    1 for i in range(1,10): 2 for j in range(1,i+1): 3 print("%d*%d=%d"%(j,i,j*i),end="\t ...

  3. winform创建桌面快捷方式

    //引用IWshRuntimeLibrary COM组件-Windows Script Host Object Model /// <summary> /// 创建快捷方式的类 /// & ...

  4. 网页中的一键加QQ群、唤起QQ群聊天窗口

    1.进入QQ群官网: https://qun.qq.com 2. 登陆QQ账号,点击加群组件 3. 左侧选择指定的群,右侧会给出一键加群的链接 4. 浏览器访问刚才复制的链接,点击 打开腾讯QQ 5. ...

  5. Android Native -- Message/Handler/Looper机制(原理篇)

    ⌈Android Native消息队列处理系列文章⌋ Android Native -- Message/Handler/Looper机制(原理篇) Android Native -- Message ...

  6. Python3 生成激活码

    1.文档: string模块:https://docs.python.org/3/library/string.html random模块:https://docs.python.org/3/libr ...

  7. 求Fibonacci数列通项公式

    0. Intro \[f_n=\begin{cases} 0 & (n=0) \\ 1 & (n=1) \\ f_{n-1}+f_{n-2} & (n>1) \end{c ...

  8. 如何为Windows服务增加Log4net和EventLog的日志功能。

    一.简介 最近在做一个项目的时候,需要该项目自动启动.自动运行,不需要认为干预.不用说,大家都知道用什么技术,那就是 Windows服务.在以前的Net Framework 平台下,Windows 服 ...

  9. fastjson、jackson以及son-lib的使用

    fastjson前言 fastJson是阿里巴巴出品的一个json序列化工具. 引入依赖 <dependency> <groupId>com.alibaba</group ...

  10. JVM学习十四 - (复习)类文件结构

    类文件结构 JVM 的"无关性" 谈论 JVM 的无关性,主要有以下两个: 平台无关性:任何操作系统都能运行 Java 代码 语言无关性: JVM 能运行除 Java 以外的其他代 ...