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. 《剑指offer》面试题46. 把数字翻译成字符串

    问题描述 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l",--,25 ...

  2. leetcode 51. N皇后 及 52.N皇后 II

    51. N皇后 问题描述 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回所有不同的 n 皇后 ...

  3. wordcount报错:org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist:

    Exception in thread "main" org.apache.hadoop.mapreduce.lib.input.InvalidInputException: In ...

  4. WSL与gnome-desktop

    WSL与gome-desktop 经过测试和检索 确定WSL1无法在gome-desktop实现GUI桌面 只能实现其中应用的现实,比如打开记事本在Xserver https://www.reddit ...

  5. dubbo系列一、dubbo启动流程

    目录 dubbo启动流程分析记录 一.dubbo provider启动流程 1.自动装配 2.ServiceBean处理 3.服务暴露export() 3.1.检测dubbo.xxx.配置属性,配置到 ...

  6. MySQL数据类型操作(char与varchar)

    目录 一:MySQL数据类型之整型 1.整型 2.验证不同类型的int是否会空出一个存储正负号 3.增加约束条件 去除正负号(unsigned) 二:浮点型 1.浮点型 2.验证浮点型精确度 三:字符 ...

  7. kubernetes之添加删除node

    添加node 1.master生成token [root@node-01 ~]# kubeadm token create --print-join-command kubeadm join 172. ...

  8. 基于Python的某大学某学院新生高考成绩分析

    # coding=gbk import pandas as pd import numpy as np import matplotlib.pyplot as plt from pylab impor ...

  9. ApacheCN 计算机视觉译文集 20211110 更新

    OpenCV3 和 Qt5 计算机视觉 零.前言 一.OpenCV 和 Qt 简介 二.创建我们的第一个 Qt 和 OpenCV 项目 三.创建一个全面的 Qt + OpenCV 项目 四.Mat和Q ...

  10. C字符串倒置-中部对称

    问题如图 Code #include<stdio.h> #include<string.h> #define MAX_LENGTH 10//最大字符串长度 void inver ...