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. WAFW00F waf识别工具 源码学习

    我实习工作的第一个任务根据已有的java waf识别工具 实现了一个python的waf识别工具 代码结构非常乱 仅仅达到了能用的水平. 顶头svp推荐这个项目当时我已经写好了开始用了自己的 稍微看了 ...

  2. vue2如何根据不同的环境配置不同的baseUrl

    在正常的开发中,通常我们需要在线上的测试环境中运行代码来检查是否有些线上才会出现的bug或者是问题.每次去特意的修改我们的baseUrl显然是不现实的,而且说不定哪天忘记了估计会被大佬喷死 首先,这是 ...

  3. TextBox,RichTextBox设置行高

    /// <summary> /// 设置行距 /// </summary> /// <param name="ctl">控件</param ...

  4. 【小记录】利用cuvid库做视频解码,运行出现"dlopen "libnvcuvid.so" failed!"

    1.查看源码:/Video_Codec_SDK_8.0.14/Samples/common/src/dynlink_nvcuvid.cpp 其中的LOAD_LIBRARY函数的源码如下: 1 #eli ...

  5. Ultimaker2+使用指南

    USB打印 使用最新的官方软件即可进行USB3D打印. 使用时在选项上进行预热以及x,y,z重新归零定位,每次开始都要做. SD卡打印 比较方便,因为电脑可能拿去做其他事情. 打印机堵塞 退出耗材时候 ...

  6. Message deduplication 这里的去重与你想的可能不一样|Apache Pulsar 技术系列

    导语 Apache Pulsar 是一个多租户.高性能的服务间消息传输解决方案,支持多租户.低延时.读写分离.跨地域复制.快速扩容.灵活容错等特性.腾讯云内部 Pulsar工作组对 Pulsar 做了 ...

  7. 响应的HTTP协议介绍及常见响应码说明

    响应的HTTP协议介绍 1,响应行 1)响应的协议和版本号 HTTP/1.1 2)响应状态码 200 3)响应状态描述符 ok 2,响应头 1)key:value 不同的响应头,有其不同含义 空行 3 ...

  8. django之定义统一返回数据格式与GET/POST装饰器

    1. 为了返回给网页前端的格式统一,定义一个通用的插件类,返回统一格式数据 # enconding:utf-8 """ 定义一个插件类, ""&quo ...

  9. java中的数据模型类

    package com.aaa.zxf.ajax.test; import java.io.Serializable; /** * java中的继承. * * 一.数据模型类 * 数据模型类:用来存取 ...

  10. poj_3190

    首先把所有的牛排个序,优先按照起始时间 其次建立一个堆,重载小于号(只可以重载小于号),优先按照右端点的时间排序,大的放下面(sort的时候会放后面),堆顶是结束时间最快的 #include < ...