赞
踩
遇到的需求
前段时间需要快速做个静态展示页面,要求是响应式和较美观。由于时间较短,自己动手写的话也有点麻烦,所以就打算上网找现成的。
中途找到了几个页面发现不错,然后就开始思考怎么把页面给下载下来。
由于之前还没有了解过爬虫,自然也就没有想到可以用爬虫来抓取网页内容。所以我采取的办法是:
打开chrome的控制台,进入Application选项
找到Frames选项,找到html文件,再右键Save As...
手动创建本地的js/css/images目录
依次打开Frames选项下的Images/Scripts/Stylesheets,一个文件就要右键Save As...
这个办法是我当时能想到的最好办法了。不过这种人为的办法有以下缺点:
手工操作,麻烦费时
一不小心就忘记保存哪个文件
难以处理路径之间的关系,比如一张图片a.jpg, 它在html中的引用方式是images/banner/a.jpg,这样我们以后还要手动去解决路径依赖关系
然后刚好前段时间接触了一点python,想到可以写个python爬虫来帮我自动抓取静态网站。于是就马上动手,参考相关资料等等。
下面跟大家详细分享一下写爬虫抓取静态网站的全过程。
前置知识储备
在下面的代码实践中,用到了python知识、正则表达式等等,核心技术是正则表达式。
我们来一一了解一下。
Python基础知识
如果你之前有过其他语言的学习经历,相信你可以很快上手python这门语言。具体学习可以上查看python官方文档或者其他教程。
爬虫的概念
爬虫,按照我的理解,其实是一段自动执行的计算机程序,在web领域中,它存在的前提是模拟用户在浏览器中的行为。
它的原理就是模拟用户访问web网页,获取网页内容,然后分析网页内容,找出我们感兴趣的部分,并且最后处理数据。
流程图是:
现在流行的爬虫主流实现形式有以下几种:
自己抓取网页内容,然后自己实现分析过程
用别人写好的爬虫框架,比如Scrapy
正则表达式
概念
正则表达式是由一系列元字符和普通字符组成的字符串,它的作用是根据一定的规则来匹配文本,最终可以对文本做出一系列的处理。
元字符是正则表达式中的保留字符,它有特殊的匹配规则,比如*代表匹配0到无穷多次,普通字符就是普通的abcd等等。
比如在前端中,常见的一个操作就是判断用户的输入是否为空,这时候我们可以先通过正则表达式来进行匹配,先过滤掉用户输入的两边空白值,具体实现如下:
下面我们一起来具体了解一下正则表达式中的元字符。
正则表达式中的元字符
在上面,我们说过元字符是正则表达式中的保留字符,它有特殊的匹配规则,所以我们首
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。