随笔分类 - 爬虫学习
摘要:spider文件 继承RedisCrawlSpider,实现全站爬取数据 import scrapy from scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpider, Rule from h
阅读全文
摘要:重写父类中的一个方法(start_requests):该方法默认可以对start_urls列表中的元素进行get请求的发送 1.将Request方法中method参数赋值成post2.FormRequest()可以发起post请求(推荐)实例:发送post请求抓取百度翻译spider文件 impor
阅读全文
摘要:分布式爬虫 搭建一个分布式的集群,让其对一组资源进行分布联合爬取,提升爬取效率 如何实现分布式 1.scrapy框架是否可以自己实现分布式? 不可以!!! 其一:因为多台机器上部署的scrapy会各自拥有各自的调度器,这样就使得多台机器无法分配start_urls列表中的url。(多台机器无法共享同
阅读全文
摘要:安装chrome yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm 安装依赖库 安装必要的库 yum install mesa-libOSMesa-devel gnu-free
阅读全文
摘要:增量式爬虫 监测网站数据更新的情况,只会爬取网站最新更新出来的数据。 需求: 爬取某个电影网站,然后把电影的名称和简介进行持久化存储 实现思路 指定一个起始url 基于CrawISpider获取其他页码链接 基于Rule将其他页码链接进行请求 从每一个页码对应的页面源码中解析出每一个电影详情页的UR
阅读全文
摘要:CrawlSpider Scrapy框架中分两类爬虫,Spider类和CrawlSpider类。 它是Spider的派生类,Spider类的设计原则是只爬取start_url列表中的网页, 而CrawlSpider类定义了一些规则(rule)来提供跟进link的方便的机制,从爬取的网页中获取link
阅读全文
摘要:案例分析: 需求:爬取网易新闻的国内板块下的新闻数据 需求分析:当点击国内超链进入国内对应的页面时,会发现当前页面展示的新闻数据是被动态加载出来的,如果直接通过程序对url进行请求,是获取不到动态加载出的新闻数据的。则就需要我们使用selenium实例化一个浏览器对象,在该对象中进行url的请求,获
阅读全文
摘要:Failed to read HKLM\SOFTWARE\Policies\Google\Chrome\MachineLevelUserCloudPol 解决 通过管理员命令方式运行如下命令即可解决: 命令行提权运行「reg add HKLM\SOFTWARE\Policies\Google\Chr
阅读全文
摘要:需求:爬取站长素材中的高清图片 一.数据解析(图片的地址) 通过xpath解析出图片src的属性值。只需要将img的src的属性值进行解析,提交到管道, 管道就会对图片的src进行请求发送获取图片 spider文件 class ImgSpider(scrapy.Spider): name = 'im
阅读全文
摘要:scrapy五大核心组件简介 引擎(Scrapy) 用来处理整个系统的数据流处理, 触发事务(框架核心) 调度器(Scheduler) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址
阅读全文
摘要:保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作。 scrapy使用流程: 创建工程: scrapy startproject ProName 进入工程目录: cd ProName 创建爬虫文件: scrap
阅读全文
摘要:异步IO 所谓「异步 IO」,就是你发起一个 IO阻塞 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知。 举个例子,同步相当于打电话通知,异步相当于发微信通知。 实现异步IO的方式 单线程+异步协程实现异步IO操作 异步协程用法 从 Python 3.4 开始,Python 中
阅读全文
摘要:xpath解析是我们在爬虫中最常用也是最通用的一种数据解析方式。 环境安装 pip install lxml 解析原理 使用通用爬虫爬取网页数据 实例化etree对象,且将页面数据加载到该对象中 使用xpath函数结合xpath表达式进行标签定位和指定数据提取 实例化etree对象 - 1.将本地的
阅读全文
摘要:requests库使用流程 使用流程/编码流程 1.指定url 2.基于requests模块发起请求 3.获取响应对象中的数据值 4.持久化存储 分析案例 需求:爬取搜狗首页的页面数据 # 爬取搜狗首页 import requests if __name__ == '__main__': # ste
阅读全文
摘要:使用 Fiddler 抓包分析公众号 打开微信随便选择一个公众号,查看公众号的所有历史文章列表 在 Fiddler 上已经能看到有请求进来了,说明公众号的文章走的都是HTTPS协议,这些请求就是微信客户端向微信服务器发送的HTTP请求。 模拟微信请求 1、服务器的响应结果,200 表示服务器对该请求
阅读全文
摘要:PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择, PyQuery 是 Python 仿照 jQuery 的严格实现。语法与 jQuery 几乎完全相同。 安装 官网地址:http://pyquery.rea
阅读全文
摘要:爬取策略 1.需要安装python selenium模块包,通过selenium中的webdriver驱动浏览器获取Cookie的方法、来达到登录的效果 pip3 install selenium chromedriver: 下载地址:http://chromedriver.storage.goog
阅读全文
摘要:Scrapyd Scrapyd是部署和运行Scrapy.spider的应用程序。它使您能够使用JSON API部署(上传)您的项目并控制其spider。 Scrapyd-client Scrapyd-client是一个专门用来发布scrapy爬虫的工具,安装该程序之后会自动在python目录\scr
阅读全文
摘要:下载中间件 下载器中间件是介于Scrapy的request/response处理的钩子框架。 是用于全局修改Scrapy request和response的一个轻量、底层的系统 编写您自己的下载器中间件 每个中间件组件是一个定义了以下一个或多个方法的Python类 使用中间件随机选择头部信息 爬取天
阅读全文
摘要:Scrapy发送Post请求 防止爬虫被反主要有以下几个策略 动态设置User-Agent(随机切换User-Agent,模拟不同用户的浏览器信息) 禁用Cookies(也就是不启用cookies middleware,不向Server发送cookies,有些网站通过cookie的使用发现爬虫行为)
阅读全文