python3爬虫学习日记(一)之概述
在学习了python3的基本语法知识后,小白要正式入门python啦,由于个人需要,所以从爬虫入门。在学习中持续更新,如有不足,请指教。
爬虫的定义及构成
-
什么是爬虫?
网络爬虫是一个自动提取网页的程序,它为搜索引擎从网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。
聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。 -
爬虫要解决的问题
(1) 对抓取目标的描述或定义
抓取目标的描述和定义是决定网页分析算法与URL搜索策略如何制订的基础。现有聚焦爬虫对抓取目标的描述可分为基于目标网页特征、基于目标数据模式和基于领域概念3种。基于目标网页特征的爬虫所抓取、存储并索引的对象一般为网站或网页。python3中使用urllib.request模块来建立与网页的链接。
(2) 对网页或数据的分析与过滤
首先,需要学会分析网页,如可以利用chrome的检查来查看html,分析元素,找出你想要抓取的部分;再者,如何过滤抓取过的信息以及用第三方库或正则表达式过滤数据;最后,对抓取到的数据进行存储或分析,这里可能要用到数据库以及numpy,pandas等第三方库。
(3) 对URL的搜索策略
搜索策略通常使用广搜(BFS)或深搜(DFS) -
我们需要学习什么知识?
1.网页的基本知识,html语法以及网站的相关(POST\GET)概念
2.解析网页用的Beautifulsoup模块/正则表达式 美丽汤官网文档
3.python3用来抓取的包:urllib.request
4.现成的框架:scrapy
5.处理动态页面的包:selenium
6.分析处理数据的包(如导出excel等等):numpy,pandas,openpyxl,xswl