持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天
python爬虫入门
python爬虫架构
python爬虫架构主要由五个部分组成,分别是调度器、URL管理器、网页下载器、网页解析器、应用程序
- 调度器:相当于一台电脑的CPU,主要负责调度URL管理器、下载器、解析器之间的协调工作
- URL管理器:包括待爬取的和已爬取的URL地址,防止重复抓取URL和循环抓取URL,实现URL管理器主要有三种方式,通过内存、数据库、缓存数据来实现
- 网页下载器:通过传入一个URL地址来下载网页,将网页转换成一个字符串,网页下载器有urllib2(Python官方基础模块)包括需要登录、代理、和cookie,requests(第三方包)
- 网页解释器:将一个网页字符串进行解析,可以按照我们的要求来提取我们有用的信息
- 应用程序:就是从网页中提取有用的数据组成的一个应用
urllib2
python自带的爬虫库
在这里我就不细谈这个自带的库了,因为这个库它我个人觉得不好用,所以我就随便给个简单的示例了
#我们来爬一个百度试一试
from urllib.request import urlopen
url = "https://www.baidu.com/"
# 响应URL
resp = urlopen(url)
# 打印出响应内容(注意这里的编码方式是utf-8)
print(resp.read().decode('utf-8'))
# 将响应内容写入根目录的html文件
with open("mybaidu.html",mode='w') as f:
f.write(resp.read().decode('utf-8'))
print(over!)
干完以的事情后我们就可以尝试去读html的文件,如果你都不懂没关系,我们还可以尝试运行html文件直接在浏览器里面看到效果
web请求过程分析
1.服务器渲染:在服务器那边直接把数据和html整合到一起,统一返回给浏览器
2.客户端渲染:第一次请求只要一个html骨架,第二次请求拿到数据,进行展示
所以我们要熟练使用浏览器抓包工具
requests模块(第三方)
这是我们接下来要重点讲的爬虫模块
首先在命令行里面:
pip install requests
我们在将上面的例子用requests重写一边
url = 'https://www.baidu.com/'
# 将代码程序伪装成浏览器
dic = {
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53
}
# 发送接受响应,header是请求头,用此来解决一个小小的反爬
resp = requests.get(url,headers=dic)
# resp.格式 解析出你想要的文件格式
print(resp.text)
with open("mybaidu.html",mode='w') as f:
f.write(resp.text)
print(over!)
小结
爬虫其实通俗易懂地解释就是你写的代码程序模拟一个浏览器去进行正常地访问,这就是爬虫工作地根本原理,我们想要熟练运用爬虫就得掌握好浏览器自带地抓包工具,学会查看请求头。