一、前记

疫情期间就已经想学习爬虫了,主要是考研外加在家躺躺(其实是太懒了)导致爬虫学习一直滞后。本学期我们开设了大数据的课程(终于来了一门良心课程),乘此机会,写一下爬虫的笔记。

二、前期准备

本次的爬虫的语言环境皆来自Python3.7,主要需要的依赖库有:BeautifulSoup,requests,re等(后面再有涉及到的库会再次说明)。操作系统为Win10,编译器是Pycharm专业版(其实是学生邮箱白嫖的)

三、一些爬虫以外的知识

因为爬虫的主要目的是为了能够获取到我们想要的网页信息,而网页主要是由HTML语言+CSS语言构建而成(有时候又会有JavaScript语言,但是不多),有时候我们会利用到这些语言里面的标签。所以,在学习爬虫之前,要稍微浅显的认识这些编程语言的标签。

1、HTML

HTML叫做超文本标记语言,主要是运用于创建网页的文字内容和网页的大致格式(像分隔,排列等)。它不是一种编程语言。HTML的语言形式为尖括号包围HTML元素。更多具体的内容可以参看这个网站,参考链接

2、Javascript

 JavaScript 是属于 HTML 和 Web 的编程语言。编程令计算机完成您需要它们做的工作。参考链接

四、爬虫的一些基本知识

要写爬虫难免我们要去知道一些有关于爬虫的知识。第一步我们首先就要去了解各式各样的Python库。

1、BeautifulSoup

①首先安装BeautifulSoup

pip3 install beautifulsoup4

②读取网页里面所有的代码内容,源代码里面所有的代码内容包含了标签,链接......这里举的例子借用了莫烦的测试网站

html=urlopen("https://morvanzhou.github.io/static/scraping/basic-structure.html").read().decode("utf-8")
print(html)

出现的结果:

<!DOCTYPE html>
<html lang="cn">
<head>
	<meta charset="UTF-8">
	<title>Scraping tutorial 1 | 莫烦Python</title>
	<link rel="icon" href="https://morvanzhou.github.io/static/img/description/tab_icon.png">
</head>
<body>
	<h1>爬虫测试1</h1>
	<p>
		这是一个在 <a href="https://morvanzhou.github.io/">莫烦Python</a>
		<a href="https://morvanzhou.github.io/tutorials/data-manipulation/scraping/">爬虫教程</a> 中的简单测试.
	</p>

</body>
</html>

③通过BeautifulSoup来进行信息的选择
在使用BeautifulSoup的时候,我们常常使用到如下的步骤:
Ⅰ将内容放到解析器里面进行解析
Ⅱ将BeautifulSoup解析出来的内容通过BeautifulSoup参数进行内容的选择
例:

html=urlopen("https://morvanzhou.github.io/static/scraping/basic-structure.html").read().decode("utf-8")
print("this is origin code==\n",html)

#用beautifulsoup来进行信息的选择
soup=BeautifulSoup(html,features="lxml")    #lxml是一个解析器,BeautifulSoup必须要一个解析器进行解析
print('this is h1\'s code==\n',soup.h1)
print('this is p\'s code==\n',soup.p)

出现的结果是:

this is origin code==
 <!DOCTYPE html>
<html lang="cn">
<head>
	<meta charset="UTF-8">
	<title>Scraping tutorial 1 | 莫烦Python</title>
	<link rel="icon" href="https://morvanzhou.github.io/static/img/description/tab_icon.png">
</head>
<body>
	<h1>爬虫测试1</h1>
	<p>
		这是一个在 <a href="https://morvanzhou.github.io/">莫烦Python</a>
		<a href="https://morvanzhou.github.io/tutorials/data-manipulation/scraping/">爬虫教程</a> 中的简单测试.
	</p>

</body>
</html>
this is h1's code==
 <h1>爬虫测试1</h1>
this is p's code==
 <p>
		这是一个在 <a href="https://morvanzhou.github.io/">莫烦Python</a>
<a href="https://morvanzhou.github.io/tutorials/data-manipulation/scraping/">爬虫教程</a> 中的简单测试.
	</p>

这样我们就能得到我们想要的信息
④删去标签
有些时候我们只想得到标签里面的内容那么我们就可以使用find_all()

a_all_url=soup.find_all('a')    #寻找到所有的<a>标签
print(a_all_url,'\n')
for l in a_all_url:
    print(l['href'])    #href相当于一个key

出现的结果:

[<a href="https://morvanzhou.github.io/">莫烦Python</a>, <a href="https://morvanzhou.github.io/tutorials/data-manipulation/scraping/">爬虫教程</a>] 

https://morvanzhou.github.io/
https://morvanzhou.github.io/tutorials/data-manipulation/scraping/

五、第一部分的结语

这么短短的一篇文章我脱了10天左右,这一次主要就是利用了一个纯HTML代码的网页,主要探讨了BeautifulSoup在纯HTML网页中的爬虫作用。是非常基础的。接下来应该会持续更新爬虫知识。