01_爬虫入门级教程__什么是爬虫?

3 篇文章 0 订阅
3 篇文章 0 订阅

一.初探数据

概述

爬虫通俗的讲呢就是能够自动访问互联网并将网站内容下载下来的程序或脚本,类似一个机器人,能够把别人网站的信息弄到电脑上,在做一些过滤,筛选,归纳,整理,排序等。
网络爬虫又名Web Spider,即把互联网比喻成一个蜘蛛网,那么spider就是在网上爬来爬去的蜘蛛。网络蜘蛛就是通过网页的连接来寻址网页,从网站的某个页面(通常是首页)开始,读取网页的内容,找到在网页中的其他连接地址,然后通过这些连接地址寻找下一个网页,这样一直循环,直到把这个网站所有网页都抓取完为止。
如果把整个互联网当成一个网站,那么爬虫就可以用这个原理把互联网上所有的网页抓取下来。

编程语言

本次教程使用的是python,这是菜鸟教程python的连接,有需要的读者可以移步做进一步了解。

爬虫平台

Pycharm官网链接传送门

二.前提知识
URL

Universal Resource Locator 即统一资源定位符)URL 是对能从 Internet 上得到资源的位置和访问方法的一种简洁的表示。URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位,使得系统得以对资源(指 Internet 上可以访问的任何对象,包括文件目录、文件、文档、图像等,以及其他任何形式的数据)进行各种操作,如存储、更新、替换和查找其属性。
<URL 的访问形式>://<主机>:<端口>/<路径>
在这里插入图片描述其实是有端口的,http协议默认端口是80不用写
https端口默认是443

左边的<URL 的访问形式>主要有文件传送协议(FTP)、超文本传送协议(HTTP)等方式,常见形式为 HTTP,下面将会介绍到。<主机>一项是必须的,<端口>和<路径>有时侯可省略。
可参考下面文章:
快速了解url的构成

HTTP

HTTP(HyperText Transfer Protocol 即超文本传输协议)是一个简单的请求——响应协议,通常运行在 TCP 之上,它指定了客户端可能发送给服务器的消息,以及得到的响应。
在这里插入图片描述

HTML

HTML(HyperText Markup Lanhguage 即超文本标记语言)是一种制作万维网页面的标准语言,它消除了计算机信息交流的障碍。HTML 定义了许多用于排版的”标签“,各种标签嵌入到万维网的页面就构成了 HTML 文档,所要爬取的页面也基本是 HTML 网页。

三.请求

请求,由客户端向服务器发出。常用的两种请求有 get 和 post。get 一般用来获取数据、 post 用来提交数据。
在这里插入图片描述

一个请求包含三个要素,分别是:
○1请求方法 URI 协议/版本
○2请求头(Request Header)
○3请求正文
在这里插入图片描述

四.响应

响应(Response),由服务器构造 POST 请求,需要使用正确的 Content-Type,并了解各种请求库的各个参数设置时使用的是哪种 Content-Type,不然可能会导致 POST 提交后无法正常响应。

○1响应状态
200:成功
301:跳转
404:找不到页面或者服务器存在问题
502:服务器错误

浏览器内同样可查看
在这里插入图片描述

○2响应头:如内容类型,内容长度,服务器信息,设置 cookie 等

○3响应体:最主要部分,包含了请求资源内容,如网页 HTML,图片,二进制数剧等

在这里插入图片描述

五.基本库

requests 是 python 实现的简单易用的 HTTP 库,使用起来比 urllib 简洁很多,所以在次教程只讲解 Requests 库。

requests安装

(1)因为是第三方库,所以使用前需要 cmd 安装。

pip3 install requests

命令行操作如下:
先找到我的电脑中pip3的安装路径
在这里插入图片描述进入目录下安装
在这里插入图片描述我是已经安装过所以显示已安装,这里就是演示一下。
接下来进入pycharm

基本用法

(2)基本用法:requests.get()用于请求目标网站。

写入代码

import requests

response = requests.get('http://www.baidu.com')
print(response.status_code)	#打印状态码
print(response.url)	#打印请求 url
print(response.headers)	#打印头信息
print(response.cookies)	#打印 cookie 信息
print(response.text) #以文本形式打印网页源码 print(response.content) #以字节流形式打印

在这里插入图片描述
运行结果如下:

在这里插入图片描述还记得我们在响应板块谈到的响应状态为200就代表成功吗 😃
(3)各种请求方式

import requests
requests.get('http://httpbin.org/get')
requests.post('http://httpbin.org/post')
requests.put('http://httpbin.org/put')
requests.delete('http://httpbin.org/delete')
requests.head('http://httpbin.org/get')
requests.options('http://httpbin.

六.解析库

解析库有 Xpath、Pyquery、BeautifulSoup 等。Xpath,全称 XML Path Language,即 XML 路径语言,它是一门在 XML 文档中查找信息的语言,Xpath 可用来在 XML 文档中对元素和属性进行遍历;如果你比较喜欢用 CSS 选择器,那么推荐你使用 Pyquery;BeautifulSoup 是个强大的解析工具,它借助网页的结构和属性等特征来解析网页,提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。

BeautifulSoup

下面来讲解BeautifulSoup 的一些基本用法。
(1)安装

pip3 install beautifulsoup4

像安装requests一样在命令行安装!
(2)导入 bs4 库

from bs4 import BeautifulSoup

(3)先创建一个字符串

html = '''
<html>
<body>
<h1 id="title">Hello World</h1>
<a href="#link1" class="link">This is link1</a> <a href="#link2" class="link">This is link2</a>
</body>
</html>
'''

(4)创建 beautifulsoup 对象

soup = BeautifulSoup(html)

(5)打印一下 soup 对象的内容,格式化输出.

print soup.prettify()

完整代码如下:

from bs4 import BeautifulSoup
html = '''


<html>

<body>
<h1 id="title">Hello World</h1>
<a href="#link1" class="link">This is link1</a> <a href="#link2" class="link">This is link2</a>
</body>

</html>
'''

soup = BeautifulSoup(html,"html.parser")
print (soup.prettify()) #g个死话输出

在这里插入图片描述

输出结果如下:
在这里插入图片描述
格式化完整输出soup对象
(6)Soup.select()函数用法

获取指定标签的内容
代码如下:

from bs4 import BeautifulSoup
html = '''


<html>

<body>
<h1 id="title">Hello World</h1>
<a href="#link1" class="link">This is link1</a> <a href="#link2" class="link">This is link2</a>
</body>

</html>
'''

soup = BeautifulSoup(html,"html.parser")
header = soup.select('h1')
print (type(header))
print (header)
print (header[0])
print (type(header[0]))
print (header)

输出如下:
在这里插入图片描述
获取指定标签的位置用#

title = soup.select('#title')
print type(title)
print title[0].text

输出:

<type 'list'>
Hello World

find函数

(7)Soup.find()和 soup.find_all()函数用法
(1)find()和 find_all()函数原型:

find 和 find_all 函数都可根据多个条件从 html 文本中查找标签对象,只不过 find 的返回对象类型为 bs4.element.Tag,为查找到的第一个满足条件的 Tag;而 find_all 的返回对象为bs4.element.ResultSet(实际上就是 Tag 列表),这里主要介绍 find 函数,find_all 函数类似。

find(name=None,attrs={},recursive=True,text=None,**kwargs)
find_all(name=None,attrs={},recursive=True,limit=None,**kwargs)

注:其中 name、attrs、text 的值都支持正则匹配。

获取指定标签的内容:

from bs4 import BeautifulSoup
html = '<p><a href="www.test.com" class="mylink1 mylink2">this is mylink</a></p>'
soup = BeautifulSoup(html,"html.parser")
a1 = soup.find('a')
print (type(a1))

输出结果如下:
在这里插入图片描述

再来

from bs4 import BeautifulSoup
html = '<p><a href="www.test.com" class="mylink1 mylink2">this is mylink</a></p>'
soup = BeautifulSoup(html,"html.parser")
a1 = soup.find('a')
print (a1.name)
print (a1['href'])
print (a1['class'])
print (a1.text)

输出结果
在这里插入图片描述

代码要自己敲,多体会find函数的用法还有代码格式和输入一定要在英文输入法的前提下输入 😃

多个条件的正则匹配:
代码如下:

from bs4 import BeautifulSoup
import re
html = '<p><a href="www.test.com" class="mylink1 mylink2">this is mylink</a></p>'
soup = BeautifulSoup(html,"html.parser")
a2 = soup.find(name=re.compile(r'\w+'), class_=re.compile(r'mylink\d+'),text = re.compile(r'^this.+link$'))
print (a2)

运行结果如下:
在这里插入图片描述
find 函数的链式调用
代码如下:

from bs4 import BeautifulSoup
import re
html = '<p><a href="www.test.com" class="mylink1 mylink2">this is mylink</a></p>'
soup = BeautifulSoup(html,"html.parser")
a3 = soup.find('p').find('a')
print (a3)

运行结果:
在这里插入图片描述

七.数据格式

(1)网页文本:HTML 文档,json 格式文件等。
(2)图片:获取到的是二进制文件,保存为图片格式。
(3)视频:同为二进制文件,保存为视频模式即可。
(4)其他。

八.保存数据的方式

(1)文本:纯文本,json,xml 等。
(2)关系型数据库:mySQL,Oracle,SQLServer 等具有结构化表结构形式存储。
(3)非关系型数据库:MongoDB,Redis 等 key-value 形式存储。
(4)二进制文件:如图片,视频,音频等直接保存特定格式即可。

02_爬虫入门级教程_如何解析数据?
03_爬虫入门级教程_如何进行数据爬取?

### 回答1: Python爬虫是指使用Python编程语言编写的,用于自动化地从互联网上获取数据的一种程序。而CentOS是一种基于Linux操作系统的开源操作系统,它具有安全稳定、功能强大的特点,因此是Python爬虫程序开发的一个很好的工具选择。以下是Python爬虫基础教程一中介绍的CentOS环境安装的步骤: 1. 下载CentOS虚拟机镜像文件,建议选择CentOS 7版本。 2. 安装虚拟机软件,如VMware或VirtualBox。 3. 在虚拟机软件中创建新的虚拟机,选择CentOS虚拟机镜像文件作为虚拟机映像文件。 4. 启动虚拟机并登录CentOS系统,使用终端输入命令进行环境配置和安装,如安装Python、pip、BeautifulSoup等工具。 通过以上步骤,我们可以在CentOS操作系统下成功配置Python爬虫所需要的开发环境,实现Python爬虫程序的正常运行。在后续的学习中,还可以学习到更加高的Python爬虫技术,例如Scrapy、Selenium等,进一步提高爬虫程序的功能和效率。 ### 回答2: 在python爬虫基础教程1中,介绍了爬虫的基础知识和技巧。为了使爬虫运行的更加稳定和有效,我们需要在合适的环境下搭建爬虫。因此,在这里,我们将会学习如何在CentOS系统下安装python环境。 步骤1:安装Python 在CentOS系统下安装Python很简单。首先,我们需要打开终端,输入以下命令安装Python: ``` sudo yum install python3 ``` 这会下载并安装Python3到你的系统中。在安装过程中,你需要输入一个管理员密码,以便在安装过程中进行确认。 步骤2:安装pip 在安装完Python后,我们需要安装一个名为pip的软件来管理Python模块。我们可以使用以下命令: ``` sudo yum install python3-pip ``` 这会下载并安装pip到你的系统中。在完成安装后,你应该能看到一条类似于“Successfully installed pip-20.3.4”的信息。 步骤3:安装其他必要软件包 在安装完Python和pip后,我们可以使用pip安装所需的软件包。但是,在进行这一步之前,我们需要安装其他一些必要的软件包。我们可以使用以下命令来安装它们: ``` sudo yum -y install python3-devel libxslt-devel libxml2-devel ``` 此命令将下载和安装必要的软件包。一旦所有软件包都已安装成功,我们就可以开始安装其他必要模块。 步骤4:安装必要的Python模块 在安装完所需的软件包后,我们可以使用pip安装我们所需的模块。如果你想要使用爬虫,你需要安装以下模块: - beautifulsoup4:一个用于解析HTML和XML文档的库 - requests:一个HTTP请求库 我们可以使用以下命令安装这些模块: ``` sudo pip3 install beautifulsoup4 requests ``` 一旦安装完成,我们就能够使用Python构建我们的爬虫了。 总体而言,在CentOS系统上安装Python和必要的软件包非常简单。只需跟着上面的指南一步一步进行,你就能够安装好所有必要的工具,并开始使用Python爬虫构建你的爬虫程序。如果你需要安装其他的模块或软件包,你可以使用pip安装。祝你好运! ### 回答3: Python爬虫已经成为了网络抓取的一大利器,它可以轻松地获取互联网上的信息,包括图片、文字、音频、视频等等。而Centos作为一款稳定可靠的操作系统,也为Python爬虫提供了很好的支持。那么如何在Centos环境下安装Python爬虫呢? 在本教程中,我们会通过以下步骤来安装Python爬虫环境: 1. 安装Python 3.6版本 Centos系统自带的Python版本可能比较低,需要先安装Python 3.6版本。可以通过以下命令来安装: ```bash yum install epel-release yum install python36 python36-devel ``` 2. 安装pip pip是Python的包管理工具,可以轻松地安装和管理Python第三方库。可以通过以下命令来安装pip: ```bash yum install python36-pip ``` 3. 安装必要的库 Python爬虫需要使用的库有很多,需要根据需要来进行安装。在本教程中,我们需要安装requests和beautifulsoup4两个库,可以通过以下命令来安装: ```bash pip3 install requests pip3 install beautifulsoup4 ``` 4. 安装PyCharm(可选) PyCharm是一款强大的Python IDE,可以提高开发效率。可以在Centos系统上安装PyCharm来进行Python爬虫的开发。可以通过以下命令来安装: ```bash wget https://download.jetbrains.com/python/pycharm-professional-2019.2.4.tar.gz tar -xzvf pycharm-professional-2019.2.4.tar.gz cd pycharm-professional-2019.2.4/bin ./pycharm.sh ``` 5. 测试Python爬虫环境 在安装完成Python爬虫环境后,可以通过编写Python脚本来测试环境是否正常工作。例如,可以编写一个简单的爬虫脚本来获取网页内容: ```python import requests url = 'https://www.baidu.com' response = requests.get(url) print(response.text) ``` 通过运行脚本,可以看到该网页的内容被输出在控制台上,说明Python爬虫环境已经安装成功。 通过以上步骤的操作,我们可以轻松地在Centos系统上搭建Python爬虫环境。通过Python爬虫,我们可以轻松地获取互联网上的信息,并进行分析和处理,为我们的工作和学习提供了很大的便利。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周偏偏偏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值