爬虫的应用方面:
- 通过网络技术向指定的url发送请求,获取服务器响应内容
- 使用某种技术(如正则表达式,XPath等)提取页面中我们感兴趣的信息
- 高效的识别响应页面中的链接信息,顺着这些链接递归
安装scrapy
pip install scrapy
本人在安装的时候并没有报以上错误
成功安装scrapy之后,可以通过doc来查看scrapy的文档 。
python -m pydoc -p 8899
打开浏览器查看localhost:8899的页面,可以在python安装目录的libsite-packages下看到scrapy的文档
创建scrapy 项目
scrapy startproject ZhipinSpider
下面我们来爬去boss直聘 广州地区的招聘信息https://www.zhipin.com/c101280100/h_101280100
使用scrapy提供的shell调试工具来抓取该页面中的信息,使用如下命令来开启shell调试
scrapy shell https://www.zhipin.com/c101280100/h_101280100
运行上面命令,将会看到如果所示的提示信息
scrapy shell -s USER_AGENT='Mozilla/5.0' https://www.zhipin.com/c101280100/h_101280100
response.xpath('//div[@class="job-primary"]/div/h3/a/div/text()').extract()
response.css('div.job-primary>div.info-primary>h3.name span').extract()
(1)编写items.py文件
(2)
scrapy genspider job_position "zhipin.com"
(3)编写piplines.py文件,该文件负责将所爬取的数据写入文件或者数据库中
配置settings.py文件
回顾一下上面的开发过程,使用scrapy开发爬虫的核心工作就是三步。
- 定义Item类,由于Item只是一个DTO对象,因此定义Item类很简单
- 开发Spider类。这一步是核心,Spider使用XPath从页面中提取项目所需的信息,并用这些信息来封装Item对象
- 开发Pipeline。Pipline负责处理Spider获取的Item对象
经过上面的步骤,这个基于Scrapy的spider已经开发完成,在命令行窗口中进入ZhipinSpider项目目录下,执行如下命令启动Spider。
scrapy crawl job_position
这里的job_position就是前面定义 的Spider名称
scrapy shell https://unsplash.com/
创建项目
scrapy startproject UnsplashImageSpider
(2)常用的反爬虫手段
1.IP地址验证
2.禁用cookie
3.违反爬虫规则文件
4.限制访问频率
5.图形验证码
(3)整合Selenium模拟浏览器行为
1.为python安装 selenium 库
pip install selenium
2.下载浏览器驱动
3.安装目标浏览器
一句话,只要技术到位,网络上没有爬取不到的数据,当然,如果有些网站的数据属于机密数据,并且这些网站也已经采取种种措施来防止非法访问,但是你非要越过层层限制去访问这些数据,这就涉嫌触犯法律了,因此,爬虫也要适可而止。