关于爬虫的前期认知:
爬虫的内容:获取你能看见的网页内容或移动APP的内容。下面主要讲解网页内容
另外,爬取站点以m站优于wap站优于pc站的顺序查看。原因很简单,因为m站最简单(手机端),最难的就是pc站了。所以如果在m站能找到你需要的所有信息就在m站吧
针对需爬取的内容分为三种,
一是包含在HTML源代码中的内容(源代码可鼠标右键选择查看源代码则可以看见当前网页的HTML源代码,或者ctrl+U键);这种情况直接获取HTML代码解析即可,最简单的一种情况。
二是Javascript加载的内容,有的时候你会发现这样一种现象,明明在页面上显示的某个元素在源代码中就是找不到,(查找可用ctrl+f键)。这种情况则是由于该元素是由JS动态生成在页面中。这种需要解析JS,或者霸王硬上弓,采用selenuim模拟浏览器行为。
三是AJAX异步请求,通常发生在某些网站的分页应用,新浪微博就是一个很好的例子。当你鼠标不断往下滑,不断动态加载新的内容。这种情况需跟踪核心的请求,请求后面会讲解,抓取这个异步请求即可。
爬虫的过程是: 发送请求——获得返回数据——对返回数据进行解析。
HTTP请求
是什么?请求可 以产生于你在浏览器地址栏输入的http地址,当你按下enter键的那一刻,实际上就是向服务器发送了一个请求,另外,而请求也并不仅限于可见的http地址,比如当你浏览微博时,不断往下滑而加载出新的内容实际上请求也在发生,可以理解为下滑的这个交互产生了请求。
怎么看?请求过程可以在浏览器的开发者页面的网络中看到,快捷键为ctrl+shift+I,如下图所示,发送了4个GET请求(请求分为GET和POST两种),还可以查看特定返回类型的请求,如HTML类请求,在最下面一栏筛选,该界面可能在不同的浏览器有一些差异,不过大体是相同的,这里展示的是火狐浏览器的界面。
点击上图红色圈圈的图标,可看到请求的具体组成部分:标题头、cookies等
返回数据
请求返回正如上面提到的HTML类请求,这里是按返回数据来分,还有图片、媒体、css等,在爬虫中需要得到的返回数据一般为HTML源代码和JSON数据。JSON数据发生在异步加载的过程中,也就是第一幅图的XHR请求中。
解析数据
若是HTML代码,则可利用BeautifulSoup等库工具进行解析,或者直接利用正则表达式
JSON数据是结构化数据,可利用python内置的json库进行载入提取。
关于Python的学习
python是一门语法简洁、功能强大的 语言。如果你有C语言或者其它编程语言的学习经验,python会很好上手。具体学习可参考python的官方文档:python documention
关于python的下载安装可参考:菜鸟教程:python教程.不习惯看英文文档也可以参考该网站的教程
在安装过程中关于环境变量的设置有一个小贴士,其它软件也适用。环境变量有的时候会让人有点头疼。首先要理解为什么要设置环境变量,环境变量其实有点类似于快捷方式,以python为例,设置好环境变量后则可直接在cmd中运行python命令,比如下图中输入python命令后则可进入shell模式。所以环境变量的设置像是间接打开了python的应用程序。所以环境变量设置成python.exe所在的文件目录即可。其它类型的环境变量同理,重点是找到你所需指向的文件所在目录。
结语
之后的会根据需爬取的网页类型进行分阶段案例讲解,敬请关注。