![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
爬虫
SpringBears
这个作者很懒,什么都没留下…
展开
-
使用普通爬虫和协程爬虫爬取汽车之家所有文章的基础数据
普通版本:from time import sleepfrom lxml import etreeimport requestsimport jsonimport randomimport timeheaders = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'原创 2020-05-19 19:46:43 · 412 阅读 · 0 评论 -
一些网站的反爬机制(持续补充中)
妹子图这个网站的反爬虫机制比较简单。当我们使用网络请求库下载图片时,该网站会对检查每个 HTTP 请求的 headers 头部中 Referer 字段。它判断该字段是否为空,如果字段为空,那么不会返回正常显示的图片,而是返回一张带有“图片来自妹子网,请勿盗链”字样的图片。遇到这种机制,突破也是比较简单。对每个 HTTP 请求,将页面的 url 地址填充到 Referer 字段中。豆瓣几乎所有的爬虫新手都会爬取豆瓣练练手。但是豆瓣还是保持开放的态度,反爬虫机制做得还是很人性化。它的反爬虫机制大原创 2020-05-19 19:33:34 · 1102 阅读 · 0 评论 -
多协程爬虫
要实现异步的爬虫方式的话,需要用到多协程。一.gevent库同步的爬虫方式爬取这8个网站 :import requests,time#导入requests和timestart = time.time()#记录程序开始时间url_list = ['https://www.baidu.com/','https://www.sina.com.cn/','http://www.sohu.com/','https://www.qq.com/','https://www...原创 2020-05-19 18:24:39 · 372 阅读 · 0 评论 -
requests里面的.text和.content的区别
resp.text返回的是Unicode型的数据。resp.content返回的是bytes型也就是二进制的数据。也就是说,如果你想取文本,可以通过r.text。如果想取图片,文件,则可以通过r.content。(resp.json()返回的是json格式数据)# 例如下载并保存一张图片import requestsjpg_url = 'https://...原创 2020-04-29 10:03:27 · 343 阅读 · 0 评论 -
常见的反爬虫机制
- 总结反爬机制: - robots - UA伪装 - 验证码 - 代理 - cookie - 动态变化的请求参数 - js加密 - js混淆 - 图片懒加载 - 动态数据的捕获 - seleium:规避检测...原创 2020-04-22 16:10:05 · 678 阅读 · 0 评论 -
分布式爬虫的部署以及增量式爬虫的作用
- 分布式 - 概念:需要搭建一个分布式的机群,然后在机群的每一台电脑中执行同一组程序,让其对某一个网站的数据进行联合分布爬取。 - 原生的scrapy框架是不可以实现分布式? - 因为调度器不可以被共享 - 管道不可以被共享 - 如何实现分布式? - scrapy+scrapy_redis实现分布式 - scrapy...原创 2020-04-22 15:50:59 · 268 阅读 · 0 评论 -
CrawlSpider深度爬取
- CrawlSpider - 一种基于scrapy进行全站数据爬取的一种新的技术手段。 - CrawlSpider就是Spider的一个子类 - 连接提取器:LinkExtractor - 规则解析器:Rule - 使用流程: - 新建一个工程 - cd 工程中 - 新建一个爬虫文件:scra...原创 2020-04-22 11:41:01 · 457 阅读 · 0 评论 -
scrapy中专门用于二进制和bytes类型的数据下载的管道(下载图片)
img.py# -*- coding: utf-8 -*-import scrapyfrom imgPro.items import ImgproItemclass ImgSpider(scrapy.Spider): name = 'img' # allowed_domains = ['www.xxx.com'] start_urls = ['http://s...原创 2020-04-22 09:57:21 · 931 阅读 · 0 评论 -
scrapy与selenium结合爬取网易新闻
# -*- coding: utf-8 -*-import scrapyfrom selenium import webdriverfrom wangyiPeo.items import WangyipeoItemclass WangyiSpider(scrapy.Spider): name = 'wangyi' # allowed_domains = ['www.xxx...原创 2020-04-21 20:31:08 · 334 阅读 · 2 评论 -
scrapy的爬虫中间件和下载中间件
- scrapy的中间件 - 爬虫中间件 - 下载中间件(***):处于引擎和下载器之间 - 作用:批量拦截所有的请求和响应 - 为什么拦截请求 - 篡改请求的头信息(UA伪装) - 修改请求对应的ip(代理) - 为什么拦截响应 - 篡改响应数据,篡改响应对象...原创 2020-04-21 19:57:17 · 793 阅读 · 0 评论 -
scrapy通过手动请求传参来实现全站深度爬取
- 基于Spider父类进行全站数据的爬取 - 全站数据的爬取:将所有页码对应的页面数据进行爬取 - 手动请求的发送(get): yield scrapy.Request(url,callback) - 对yield的总结: - 向管道提交item的时候:yield item - 手动请求发送:yield scrapy.Req...原创 2020-04-21 18:07:50 · 352 阅读 · 0 评论 -
scrapy五大核心组件
- 基于Spider父类进行全站数据的爬取 - 全站数据的爬取:将所有页码对应的页面数据进行爬取 - 手动请求的发送(get): yield scrapy.Request(url,callback) - 对yield的总结: - 向管道提交item的时候:yield item - 手动请求发送:yield scrapy.Req...原创 2020-04-21 17:07:27 · 2132 阅读 · 1 评论 -
scrapy测试爬取虎牙部分数据(两种存储方式)
第1步:scrapy startproject huyaPro第2步:cd huyaProscrapy genspider huya www.xxx.com第3步:到setting中进行相关的设置第4步:进行数据解析 4.1:基于终端指令进行的持久化存储 def parse(self, response): ...原创 2020-04-21 15:22:32 · 267 阅读 · 0 评论 -
scrapy框架的基本使用
什么是框架? - 就是一个具有很强通用性且集成了很多功能的项目模板(可以被应用在各种需求中)- scrapy集成好的功能: - 高性能的数据解析操作(xpath) - 高性能的数据下载 - 高性能的持久化存储 - 中间件 - 全栈数据爬取操作 - 分布式:redis - 请求传参的机制(深度爬取) - scrapy中合理的...原创 2020-04-21 10:11:58 · 194 阅读 · 0 评论 -
移动数据爬取的步骤
移动端数据的爬取- fiddler是一款抓包工具:代理服务器 - 青花瓷,miteproxy - 配置:让其可以抓取https协议的请求 - tools-》options-》https-》安装证书- http:客户端和服务器端进行数据交互的某种形式- https:安全的http协议- https的加密方式采用的是证书密钥加密。- 1.配置下fiddler的端口...原创 2020-04-18 14:46:09 · 521 阅读 · 0 评论 -
selenium设置了启动配置,但是window.navigator.webdriver的结果依然为true
selenium做爬虫能解决很多反爬问题,但是selenium也有很多特征可以被识别,比如用selenium驱动浏览器后window.navigator.webdriver值是true,而正常运行浏览器该值是未定义的(undefined),如下:网上的各种文章往往告诉大家把selenium做一下启动配置即可,如下:option.add_experimental_option("excl...原创 2020-04-18 12:37:14 · 2877 阅读 · 3 评论 -
用selenium基本知识和流程
- cookie的处理 - 手动处理 - cookie从抓包工具中捕获封装到headers中 - 自动处理 - session对象。- 代理 - 代理服务器 - 进行请求转发 - 代理ip:port作用到get、post方法的proxies = {'http':'ip:port'}中 -...原创 2020-04-18 11:17:24 · 215 阅读 · 0 评论 -
爬虫.多线程爬虫 和 单线程+多任务异步协程
协程 在函数(特殊的函数)定义的时候,如果使用了async修饰的话,则该函数调用后会返回一个协程对象,并且函数内部的实现语句不会立即执行 任务对象 任务对象就是对协程对象的进一步封装。任务对象==高级的协程对象==特殊的函数 任务对象时必须要注册到事件循环对象中 给任务对象绑定回调:爬虫的数据解析中 事件循环 把事件循环当做是一个循环的容器,容器中必须存放任务对象 当...原创 2020-04-17 15:17:35 · 196 阅读 · 0 评论