既然想要学Python爬虫,那么我们就要先了解网络爬虫的基本原理,更要熟悉Python的编程,同时也要了解HTML,这样才能顺理入门。
首先我们要知道网络爬虫,网络爬虫其实可以叫作网络数据采集。是通过编程向网络服务器请求数据(HTML表单),然后解析HTML,提取出自己想要的数据。其中就会涉及很多,比如数据库、网络服务器、HTTP协议之类的众多其他知识。
刚开始入门爬虫时,可以找一个面向初学者的教材或者网络教程学习。基本上就对Python有个基本了解了,以为Python入门本来就不难。所有建议先大概了解下Python的基础知识。
打好基础后我们就要了解Python的基本原理。
其实爬虫程序主要就是这两个:发送GET请求,1.获取HTML、2.解析HTML,获取数据。
获取后就要开始解析,而python也提供了很多库来帮助你解析HTML,所有还是很简单的。
这里我们可以用获取百度标题和图片为例。
首先发送HTML数据请求可以使用python内置库urllib,该库有一个urlopen函数,可以根据url获取HTML文件。
# 导入urllib库的urlopen函数
from urllib.request import urlopen
# 发出请求,获取html
html = urlopen("https://www.baidu.com/")
# 获取的html内容是字节,将其转化为字符串
html_text = bytes.decode(html.read())
# 打印html内容
print(html_text)
获取之后可以看看效果和百度首页做对比。对比会发现基本上是一致的。
获取了HTML之后就要解析HTML了,我们可以python库BeautifulSoup为工具来解析所获取的HTML页。但是BeautifulSoup是第三方库,所有需要安装后使用。
安装后BeautifulSoup会将HTML内容转换成结构化内容,然后就只要从结构化标签里面提取数据就行了。
想要获取什么信息就从标签中取出想要的信息就可以了,比如我们想要获取百度的标题
# 导入urlopen函数
from urllib.request import urlopen
# 导入BeautifulSoup
from bs4 import BeautifulSoup as bf
# 请求获取HTML
html = urlopen("https://www.baidu.com/")
# 用BeautifulSoup解析html
obj = bf(html.read(),'html.parser')
# 从标签head、title里提取标题
title = obj.head.title
# 打印标题
print(title)
这样子就可以得到结果了!
根据这个基本的原理就可以知道基本的Python爬虫知识,大家可以自己动手操作,至于更多优秀的和复杂的要靠后期精准地学习。学习是一步一步地来的,刚接触Python的时候首先要打好基础。最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。