随笔分类 - 爬虫
摘要:bitmap去重与布隆过滤器原理 1. bitmap去重 通过一个比特位来存一个地址,占用内存很小 2. 布隆过滤器 BloomFilter 会开辟一个m位的bitArray(位数组),开始所有数据全部置 0 。当一个元素过来时,能过多个哈希函数(h1,h2,h3....)计算不同的在哈希值,并通过
阅读全文
摘要:MongoDB基础知识 MongoDB是一款强大、灵活、且易于扩展的通用型数据库 1、文档是MongoDB的核心概念。文档就是键值对的一个有序集{'msg':'hello','foo':3}。类似于python中的有序字典。 需要注意的是: #1、文档中的键/值对是有序的。 #2、文档中的值不仅可以
阅读全文
摘要:分布式爬虫 安装: pip3 install scrapy-redis 1. 修改原来的爬虫继承和start_urls from scrapy_redis.spiders import RedisSpider class CnblogsSpider(RedisSpider): #start_urls
阅读全文
摘要:scrapy 请求传参 def parse(self, response): div_list = response.css('div.post_item') for div in div_list: item = ScrItem() dec = div.css('p.post_item_summa
阅读全文
摘要:Scrapy 对接selenium # 在爬虫启动后,就只打开一个chrom浏览器,以后都用这单独一个浏览器来爬数据 # 1 在爬虫中创建bro对象 from selenium import webdriver bro = webdriver.Chrome() # 2 中间件中使用: from sc
阅读全文
摘要:Scrapy 去重源码分析 # 去重源码分析 # from scrapy.core.scheduler import Scheduler # Scheduler下:def enqueue_request(self, request)方法判断是否去重 if not request.dont_filte
阅读全文
摘要:fake-useragent 该插件用来随机生成请求头中的user-agent https://github.com/hellysmile/fake-useragent 安装 pip3 install fake-useragent 使用 from fake_useragent import User
阅读全文
摘要:Scrapy 框架提高爬取效率的配置 - 在配置文件中进行相关的配置即可:(默认还有一套setting) #1 增加并发: 默认scrapy开启的并发线程为32个,可以适当进行增加。在settings配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100。
阅读全文
摘要:Downloader Middleware 的用法 Downloader Middleware 即下载中间件,它是处于Scrapy 的Request 和Response之间的处理模块。 Downloader Middleware 在整个架构中起作用的位置是以下两个: 在Scheduler 调度出队列
阅读全文
摘要:一.爬虫项目类相关属性 name 。爬虫名称,是定义Spider 名字的字符串。Spider 的名字定义了Scrapy 如何定位并初始化Spider,它必须是唯一的。不过我们可以生成多个相同的Spider 实例,数量没有限制。 allowed_domains 。允许爬取的域名,是可选配置,不在此范围
阅读全文
摘要:爬虫基础 爬虫的Robots协议 请求库之requests库 解析库beautifulsoup 爬取汽车之家新闻 搭建免费代理池 验证码破解 模拟自动登录网站 xpath路径 selenium简介与安装 selenium的使用 Scrapy框架 Scrapy 架构介绍 scrapy 框架的安装与启动
阅读全文
摘要:Scrapy持久化 方式一(了解): 此方式针对小型项目,利用其可以轻松将输出抓取到文件中 1 parser解析函数,return 列表,列表套字典 2 命令行持久化到文件中:scrapy crawl chouti -o aa.json (支持:('json', 'jsonlines', 'jl',
阅读全文
摘要:解析response parse()方法的参数 response 是start_urls里面的链接爬取后的结果。所以在parse()方法中,我们可以直接对response对象包含的内容进行解析,比如浏览请求结果的网页源代码,或者进一步分析源代码内容,或者找出结果中的链接而得到下一个请求 一.resp
阅读全文
摘要:爬取数据并解析 爬虫文件中parse方法中写: def parse(self, response): # 解析,请求回来,自动执行parser,在这个方法中做解析 # 解析 方式一:使用bs4解析 # from bs4 import BeautifulSoup # soup=BeautifulSou
阅读全文
摘要:Scrapy 架构 Scrapy 是一个基于 Twisted 的异步处理框架,是纯 Python 实现的爬虫框架,其架构清晰,模块之间的耦合程度低,可扩展性极强,可以灵活完成各种需求。我们只需要定制开发几个模块就可以轻松实现一个爬虫。 它可以分为如下的几个部分。 Engine引擎(大总管),用来处理
阅读全文
摘要:scrapy项目架构 -project # 项目名 -project # 跟项目一个名,文件夹 -spiders # spiders:放着爬虫 genspider生成的爬虫,都放在这下面 -__init__.py -chouti.py # 抽屉爬虫 -cnblogs.py # cnblogs 爬虫
阅读全文
摘要:scrapy 框架的安装 安装的详细过程:https://cuiqingcai.com/5421.html Windows平台 如果 pip3 install scrapy 安装不上,则执行下列步骤安装 1、pip3 install wheel #安装后,便支持通过wheel文件安装软件,wheel
阅读全文
摘要:selenium的使用 声明浏览器对象 Selenium支持非常多的浏览器,如Chrome、Firefox、Edge等,还有Android、BlackBerry等手机端的浏览器。此外,我们可以用如下方式进行初始化: from selenium import webdriver browser = w
阅读全文
摘要:selenium的介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器 安装 pip
阅读全文
摘要:xpath路径 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 1、选取节点 表达式描述 nodename 选取此节点的所有子节点。 / 从根节点选取。 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 . 选取当前节点
阅读全文