初步认识爬虫

1.什么是爬虫?

按照一定的规则,自动地抓取万维网信息的程序或者脚本。

按照系统结构和实现技术,大致可以分:通用网络爬虫聚焦网络爬虫增量式网络爬虫深层网络爬虫

实际的网络爬虫系统通常是几种爬虫技术相结合实现的 。

通用网络爬虫(Scalable Web Crawler):主要为门户站点搜索引擎和大型 Web 服务提供商采集数据;
特点:
1.爬行范围和数量巨大,对于爬行速度和存储空间要求较高;
2.对于爬行页面的顺序要求相对较低;
3.由于待刷新的页面太多,通常采用并行工作方式,但需要较长时间才能刷新一次页面。

聚焦网络爬虫(Focused Crawler):选择性地爬行那些与预先定义好的主题相关页面的网络爬虫
特点:
1.只需要爬行与主题相关的页面,极大地节省了硬件和网络资源;
2.保存的页面也由于数量少而更新快;
3.可以很好地满足一些特定人群对特定领域信息的需求。

增量式网络爬虫(Incremental Web Crawler):对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫。
特点:
1.能够在一定程度上保证所爬行的页面是尽可能新的页面;
2.只会在需要的时候爬行新产生或发生更新的页面 ,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费;
3.增加了爬行算法的复杂度和实现难度。

深层网络爬虫(Deep Web Crawler):针对Deep Web;
Deep Web:是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的 Web 页面。例如那些用户注册后内容才可见的网页就属于 Deep Web。

2.爬虫的步骤:

  1. 模拟HTTP请求,将请求发送到目标网址;
  2. 获得html;
  3. 对获取到的数据进行解析——提取出我们所需要的部分;
  4. 存储提取出来的数据——文件/数据库;

3.如何模拟HTTP发送请求?

1.urllib.requestopenurl(url):常用的方法,对一些没有设置反爬虫的网站适用;
2. Requests :可以定制header,如果目标对象设置了反爬虫,就可以使用该方法;

4.如何获得html?

read()

5.如何解析获取到的数据?

  1. 正则表达式;
  2. 字符串;
  3. BeautifulSoup;

6.如何对数据进行存储?

1.存到文件中: with open (‘a.txt’ ,‘w’) as f ;
2. 存到数据库:MySQL pymysql mysql-connector

你可能感兴趣的:(爬虫)