python爬虫需要的知识_python爬虫第一篇~预备知识

在学习了python基础后,需要去做下最简单的实战,从目标网页上爬取一些资料

学习最简单的爬虫,需要至少具备哪些知识点

1:html知识

2:基本的python知识

3:爬虫第三方工具

----------------------------------------

1:html知识

这样,我们就先来学习一下网页。

我们每天都看了很多的网页。其实我们看到的内容是经过浏览器处理的。

我们爬取网页的时候,不是去和经过浏览器处理后的我们看到的内容打交道,是和原始的网页内容打交道。

所以。我们需要去了解网页的结构,网页其实就是html文件。

最简单的网页的代码就是由一行代码组成的。

如果以最小化思维来学习一个东西的话,完了,网页学完了,就是这样简单吗?

是的,简单得不可思议。

但是这样的网页,只能用在测试中,因为这个网页没有标题,没有内容,就是一个空白。

我们一般看到的网页中都有一些文字,图片,视频。还有还有一些闪动的广告或者特效。

作为刚开始的人员。我们学习这个网页结构的话,

最起码下方这个代码你要非常明明白白的,不能再简单了。

测试使用的第一个网页中的主体部分!

我们先在桌面上建立一个txt文件,然后把这段代码复制进去,存档。然后改名,比如11.html

这里,这个11类似的部分,名字你用其他字母也是可以的,后缀名部分必须html.

然后,你直接打开这个文件。

1000

我们可以看到网页的标题上面的名字就是我们放在之间的部分。

然后正文的内容,就是之间的了。

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

2:至少会用导入模块,变量赋值,打印内容。

导入模块:

import urllib.request

在导入某模块的时候,如果提示没有此模块,则是需要你进行安装。

变量赋值

打印内容:

print()

这是最基本的使用命令了,一定要掌握。

使用的时候,我们需要在括号中输入需要打印的变量。

比如我们需要打印某个html网页的内容。那么首先我们需要提取到这个网页的内容。

这就是第三方模块的功能所做的事情了。

然后我们打印的时候,如果编码不对,我们在打印的时候,需要在打印的时候带上编码,这样系统就以我们能认识的编码把内容展现给我们了。

这里提醒下,我们使用的是python3.6版本了。

所以最基本的打印命令是print()

和python2.x当中使用的是不同的。

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

3:爬虫第三方模块

我们使用request模块,当然我们首先需要安装request模块

import urllib.request

#发出请求并且接收返回文本对象

html = re.read()

#调用read()进行读取

print(html)

#打印

1000

由于内容较多,我截图了前面的一部分,然后上面的内容呢?我们基本都不认识。没看到内容里面有中文,这是因为编码的问题。

我们如何知道被爬的目标的编程是哪种类型呢?

我们需要一个专门的模块chardet,

我们在使用一个模块的时候,要先导入她。

import chardet

ch1 = chardet.detect(html)

print(ch1['encoding'])

******************************

>>> import chardet

>>> ch1 = chardet.detect(html)

>>> print(ch1['encoding']

... )

utf-8

>>>

*****************************

我们修改上面的输出代码

>>> html = re.read()

>>> ch1 = chardet.detect(html)

>>> print(ch1)

{'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}

>>> print(html.decode(ch1['encoding']))

由于页面较多,我截图了第一页。

我们可以看到,截图里面的内容,里面已经有了中文。

1000

最后,我们看看这个使用的第三方ullib这个库

urllib request 模块提供了最基本的构造 HTTP 请求的方法, 利用它可以模拟浏览器的请求发起过程

url 我们所要请求的网址(有些网站可能会有登陆操作,所以这里不全是我们所要爬取的网址,而要经过中间的一些过程)我们可以把url,也就是网址,写在这个括号中。类似

也可以提前把网址定义在一个变量中。

data 参数是可选的,如果要添加 data ,它要是字节流编码格式的内容,即 bytes 类型,通过 bytes() 函数可以进行转化,另外如果你传递了这个 data 参数,它的请求方式就不再是 GET 方式请求,而是 POST 。timeout 参数可以设置超时时间,单位为秒,意思就是如果请求超出了设置的这个时间还没有得到响应,就会抛出异常,如果不指定,就会使用全局默认时间。它支持 HTTP 、 HTTPS 、 FTP 请求。其他参数 还有 context 参数,它必须是 ssl.SSLContext 类型,用来指定 SSL 设置。cafile 和 capath 两个参数是指定CA证书和它的路径,这个在请求 HTTPS 链接时会有用。cadefault 参数现在已经弃用了,默认为 False 。我们上面使用的时候,就是括号中直接写了一个URL.

注意:python是区分大小写的语言。url和URL是截然不同的变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值