随笔分类 - 爬虫笔记
python爬虫技术是必备技能之一,提升了我对web、数据库、多线程的理解,这个分类记录了我学习爬虫的笔记。
摘要:[TOC] ——参考博客 https://www.zhuyingda.com/blog/article.html?id=17 机器人协议 爬虫领域有一个“白道手段”——robots协议,这是一个君子协议,即用allow和disallow声明各个页面的爬取授权,但除了商业搜索引擎的爬虫程序,野生爬虫根
阅读全文
摘要:scrapy框架 下载中间件 middlewares.py中有两个类,一个是xxSpiderMiddleware类 一个是xxDownloaderMiddleware类,xx代表项目名,本次笔记主要记录DownloaderMiddleware类的一些知识点 [TOC] 1. process_requ
阅读全文
摘要:scrapy框架 图片下载 [TOC] python小知识: map函数:将一个可迭代对象的每个值,依次交给一个函数处理,返回一个生成器。 urls本身是一个列表,使用map函数,将urls中的每一项传递给url ,并让url执行‘https:’+url的操作。 lambda则是一个无名函数,方便一
阅读全文
摘要:scrapy框架 post请求和shell [TOC] 1. post请求 scrapy框架在开始时,会直接调用start_requests(self) 函数,所以需要重写start_requests方法,并且不调用start_urls里面的url,之后再使用回调函数进入真正的数据解析函数 2. s
阅读全文
摘要:scrapy框架 文件写入 [TOC] 1. lowb写法 当整个项目开始时,会执行\__init__ 和open_spider函数,所以先将文件打开,方便写入。项目结束时运行close_spider函数,在这个地方关闭文件。 每次spider将数据抛出,由process_spider函数进行处理
阅读全文
摘要:scrapy框架 两种爬虫对比和大概流程 注:spider.py指使用命令行创建的爬虫主文件 [TOC] 1. 传统spider爬虫 创建scrapy项目,首先进入想创建项目的目录,然后cmd输入: spidername就是爬虫文件名 xxxx.com 用于限定爬虫爬取的范围爬虫名,其与项目名不能相
阅读全文
摘要:爬虫 selenium+HeadlessChrome [TOC] 之前的笔记已经提到过selenium+chromedriver爬取Ajax技术加载的数据,但这种方式过于笨重,原因在于,每打开一个页面,都需要浏览器解析数据渲染界面,但实际上我们的爬虫不需要这些操作。所以一个没有界面但又完全可以模拟浏
阅读全文
摘要:爬虫 ajax数据爬取 [TOC] 1. ajax数据 ajax (异步JavaScript 和 XML)(读作阿贾克斯),ajax可以时网页实现异步更新,一般使用的json数据交互,即在不重新加载整个页面也可以对网页的部分进行更新, ajax技术加载的数据在网页源代码中是看不到的 ,只能看到url
阅读全文
摘要:爬虫 多线程和队列 [TOC] 当我们实现了一个小爬虫之后,会自然而然的考虑如何提升爬虫的效率,因此,我们就需要借助多线程、多进程和数据结构的方法。本次笔记提供一个简单的生产者和消费者模式的框架,并给出了一个实战代码。 1. 生产者和消费者模式 这个模式可以从生活实际出发,想想我们去吃自助,生产者(
阅读全文
摘要:爬虫 数据存储 [TOC] 1. JSON文件 1.1 JSON数据格式 json是一种轻量级数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,简洁清晰,适合前端和后端数据交换 JSON数据格式 1 对象(字典) 使用花括号{} 2 数组(数组) 使用方括号[] 3 整形、浮点型、布尔
阅读全文
摘要:爬虫 数据解析 [TOC] 1. xpath和正则表达式心得 0)推荐安装谷歌浏览器插件xpath helper(谷歌应用商店,需要FQ,后面会提到其缺陷,但初学时效果极佳) 1)xpath获取某标签下的文本使用/text()函数 例如//div/p/text() 2)xpath获取标签中属性的值使
阅读全文
摘要:爬虫 基础知识+requests库 [TOC] 关于html的知识,可以到w3school中进行了解学习。http://www.w3school.com.cn/html/index.asp,水平有限,这里不多提及。 1. 状态返回码 标志这这一次的请求状态,成功或失败,失败原因大概是什么 200:请
阅读全文

浙公网安备 33010602011771号