一、爬虫介绍
爬虫程序是数据技术收集信息的基础,爬取到需要的数据后,就可以对数据进行分析和建立应用了。网络爬虫就是自动的从互联网上获取数据的程序。基本上我们在浏览网站时所能见到的数据都可以通过爬虫程序保存下来。我们可以学习爬虫来获取相关的数据。但是,数据是有归属的,并不是你想拿来用就拿来用的,所以,我们要在合法的情况下使用爬虫。因此,我们要遵守互联网世界的robot协议。从目前来看,如果抓取的数据属于每个人使用或科研范畴,基本上不存在问题,而如果数据属于商业盈利范畴,就要就事论事了。而robot协议是什么呢?就拿淘宝举例,你可以搜索https://www.taobao.com/robot.txt,可以看到Allow就是允许爬取的内容,Disallow就是不允许爬取的内容。除了遵守robot协议,我们自己也要注意爬虫的约束。要用合理的方式使用爬虫。
二、爬虫流程及相关技术
爬虫的流程:获取网页;解析网页;存储数据
- 获取网页就是给网址发送请求,然后网址会返回整个网页的数据
- 解析网页就是从整个获取到的网页数据中提取想要的数据
- 存储数据就是把提取出来的数据存储下来
相关技术:
- 获取网页:request、selenium、多线程多进程抓取、登录抓取、突破IP封禁和服务器抓取
- 解析网页:re正则表达式、BeautifulSoup,lxml、解决中文乱码
- 存储数据:存入txt文件,csv文件,存入MySQL数据库或MongoDB数据库
三、爬虫工具
要想完成爬虫,我们就要用到工具,我们使用Python语言进行编程,可以直接安装Anaconda,Anaconda提供了众多科学计算的包以及其他一些常用的包,并且自带IDE,所以使用起来很方面。我们就使用Anaconda自带的Jupyter编程。
四、简单爬虫程序
# 导包
import requests
from bs4 import BeautifulSoup
# 第一步:获取页面
# 设置url
url = "http://www.santostang.com/"
# 构造请求头
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
# 发送get请求
data = requests.get(url, headers= headers)
print(data.text)
# 第二步:提取数据
# 使用BeautifulSoup解析这段代码
soup = BeautifulSoup(data.text, "lxml")
# 获取标题
title = soup.find("h1", class_="post-title").a.text.strip()
print(title)
4.3 通过selenium 模拟浏览器抓取
# 第三步:存储数据
with open('title.txt', "w", encoding="utf-8") as f:
f.write(title)
f.close()
将数据存储在txt文件中。
总结:本篇内容对爬虫进行了简单的介绍,并写了一个简单的爬虫例子,这个例子也是书上的例子,文章的内容是记录我的学习过程。没有其他的目的。欢迎批评指正。
本篇学习笔记,是总结唐松老师的《Python网络爬虫从入门到实践》这本书的内容,如果想了解书中详细内容,请自行购买。