关于Scrapy工作流程回顾 Scrapy单机架构 上图的架构其实就是一种单机架构,只在本机维护一个爬取队列,Scheduler进行调度,而要实现多态服务器共同爬取数据关键就是共享爬取队列. 分布式架构 我将上图进行再次更改 这里重要的就是我的队列通过什么维护?这里一般我们通过Redis为维护,Redis,非关系型数据库,Key-Value形式存储,结构灵活.并且redis是内存中的数据结构存储系统,处理速度快,提供队列集合等多种存储结构,方便队列维护 如何去重?这里借助redis的集合,red…
网络爬虫之scripy系列 [scrapy网络爬虫]之0 爬虫与反扒 [scrapy网络爬虫]之一 scrapy框架简介和基础应用 [scrapy网络爬虫]之二 持久化操作 [scrapy网络爬虫]之三 递归解析和post请求 [scrapy网络爬虫]之四 日志等级和请求传参 [scrapy网络爬虫]之五 CrawlSpider操作 [scrapy网络爬虫]之六 selenium在scrapy中的应用 [scrapy网络爬虫]之七 UA池和代理池在scrapy中的应用 [scrapy网络爬虫]之…
01-scrapy介绍 02-项目的目录结构: scrapy.cfg 项目的主配置信息.(真正爬虫相关的配置信息在settings.py 文件中) items.py 设置数据存储模板,用于结构化数据,如:Django的model pipelines 数据持久化处理 settings.py 配置文件 spiders 爬虫目录,如:创建文件,编写爬虫解析规则 03-配置文件settings.py的配置 # 建议修改: ROBOTSTXT_OBEY = False # 默认为True # 进行身份伪装…
按照上一篇文章中我们将代码放到远程主机是通过拷贝或者git的方式,但是如果考虑到我们又多台远程主机的情况,这种方式就比较麻烦,那有没有好用的方法呢?这里其实可以通过scrapyd,下面是这个scrapyd的github地址:https://github.com/scrapy/scrapyd 当在远程主机上安装了scrapyd并启动之后,就会再远程主机上启动一个web服务,默认是6800端口,这样我们就可以通过http请求的方式,通过接口的方式管理我们scrapy项目,这样就不需要在一个一个电脑连…
按照上一篇文章中我们将代码放到远程主机是通过拷贝或者git的方式,但是如果考虑到我们又多台远程主机的情况,这种方式就比较麻烦,那有没有好用的方法呢?这里其实可以通过scrapyd,下面是这个scrapyd的github地址:https://github.com/scrapy/scrapyd 当在远程主机上安装了scrapyd并启动之后,就会再远程主机上启动一个web服务,默认是6800端口,这样我们就可以通过http请求的方式,通过接口的方式管理我们scrapy项目,这样就不需要在一个一个电脑连…
scrapy部署神器-scrapyd -->GitHub地址  -->官方文档 一:安装scrapyd 安装:pip3 install scrapyd 这里我在另外一台ubuntu linux虚拟机中同样安装scrapy以及scrapyd等包,保证所要运行的爬虫需要的包都完成安装. 在这里有个小问题需要注意,默认scrapyd启动是通过scrapyd就可以直接启动,这里bind绑定的ip地址是127.0.0.1端口是:6800,这里为了其他虚拟机访问讲ip地址设置为0.0.0.0修改scrap…
本篇主要介绍使用selenium模拟点击下一页,更多内容请参考:Python学习指南 #-*- coding:utf-8 -*- import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys from bs4 import BeautifulSoup import time class douyuSelenium(unittest.TestCase): #初始化方法 d…
前面介绍的scrapy爬虫只能爬取单个网页.如果我们想爬取多个网页.比如网上的小说该如何如何操作呢.比如下面的这样的结构.是小说的第一篇.可以点击返回目录还是下一页 对应的网页代码: 我们再看进入后面章节的网页,可以看到增加了上一页 对应的网页代码: 通过对比上面的网页代码可以看到. 上一页,目录,下一页的网页代码都在<div>下的<a>元素的href里面.不同的是第一章只有2个<a>元素,从二章开始就有3个<a>元素.因此我们可以通过<div>…
上一篇简单的实现了获取url返回的内容,在这一篇就要第返回的内容进行提取,并将结果保存到html中. 一 . 需求: 抓取主页面:百度百科Python词条   https://baike.baidu.com/item/Python/407313 分析上面的源码格式,便于提取: 关键词分析:位于class为lemmaWgt-lemmaTitle-title的dd元素的第一个h1标签内  简介分析(位于class为lemma-summary的div的text内容) 其他相关联的标签的分析(是a标签,…
目的意义 爬虫应该能够快速高效的完成数据爬取和分析任务.使用多个进程协同完成一个任务,提高了数据爬取的效率. 以百度百科的一条为起点,抓取百度百科2000左右词条数据. 说明 参阅模仿了:https://book.douban.com/subject/27061630/. 作者说是简单的分布式爬虫(hh),在书中有详细的说明和注解. 这里只是补漏和梳理. 因为进程传递参数的问题,搞了几天还是放弃了在WIndows上跑,换用了Linux. 又因为各种各样的问题,弃用CentOS(它确实是安全可靠的…