网络爬虫——python爬取豆瓣评论
一、网络爬虫概述
1. 1 网络爬虫定义
网络爬虫,又被称为网络蜘蛛(Web Spider)、网络机器人等。它根据网页地址(URL)爬取网页内容,网页地址(URL)就是我们在浏览器中输入的网站链接。例如:https://www.baidu.com;https://movie.douban.com/。
网络爬虫不仅能够复制网页信息和下载音视频,还可以做到网站的模拟登录和行为链执行。由于需要爬取的网站大多需要先登录才能正常访问,或者需要登录后的cookie值才能继续爬取,所以需要对网站模拟登录。有些网站设置了Referer防盗链,所以需要执行网页浏览行为链。
1. 2 网络爬虫途径
开发一个网络爬虫主要有两个途径,一个是根据请求包和解析包从头开始爬虫编写,也就是脚本编写爬虫,另一个是基于现行的爬虫框架,进行框架化开发。
脚本编写爬虫:Python实现了许多第三方库来帮开发者完成这个操作,比如github上开源的requests库便是发起HTTP请求,bs4解析库专注于网页信息的定位,操作网站返回的主体信息。开发重心从协议处理转化到了具体网页的数据提取。
基于框架开发爬虫:如今流行的网络爬虫框架Scrapy,其基于异步Twisted引擎,将爬虫请求的每个阶段都进行了拆分,并建立了钩子能够让开发者在每一阶段进行定制化开发,可以大大加快网络爬虫的开发速度,并且其异步特性可以很好地实现并发爬取。
1. 3 常见反爬机制
常见的反爬机制有以下几种:
User-Agent:User-Agent是一种请求头,用于表明身份的一种标识,服务器可以从User-Agent对应的值中来识别用户端使用的操作系统、浏览器、浏览器引擎、操作系统语言等。在向服务器发送的网络请求中,可以通过检测User-Agent请求头域值来判断客户端的是否为爬虫。
Referer:可以理解为来路,比如我们要打开一个产品或者影片的详情面,首先打开首页URL链接,再打开详情链接。打开详情页面的时候