pyspider

Can Scrapy be replaced by pyspider?

你说的曾经没有我的故事 提交于 2019-11-29 23:05:59
I've been using Scrapy web-scraping framework pretty extensively, but, recently I've discovered that there is another framework/system called pyspider , which, according to it's github page, is fresh, actively developed and popular. pyspider 's home page lists several things being supported out-of-the-box: Powerful WebUI with script editor, task monitor, project manager and result viewer Javascript pages supported! Task priority, retry, periodical and recrawl by age or marks in index page (like update time) Distributed architecture These are the things that Scrapy itself doesn't provide, but,

使用python爬虫——爬取淘宝图片和知乎内容

不想你离开。 提交于 2019-11-29 21:22:25
本文主要内容: 目标:使用python爬取淘宝图片;使用python的一个开源框架pyspider(非常好用,一个国人写的)爬取知乎上的每个问题,及这个问题下的所有评论 最简单的爬虫——如下python代码 爬取淘宝上模特图片 爬取知乎的数据,需伪装成GoogleBot去爬,否则ip会被封掉,并通过MySQLdb保存到自己建的数据库中 爬取https://www.v2ex.com社区下的所有讨论话题 目标:使用python爬取淘宝图片;使用python的一个开源框架pyspider(非常好用,一个国人写的)爬取知乎上的每个问题,及这个问题下的所有评论 有2种实现方案: 1、使用pyspider开源框架,安装好pyspider并启动后,默认是本地的5001端口,新建一个爬虫项目,写下如下python代码实践爬去知乎的问题和评论数据,同时使用python-mysql,把爬到的数据存到自己建的一个数据库,把数据留给自己使用分析哈哈! 2、使用urllib,PyQuery,requests,BeautifulSoup等库自己实现一个简单的爬虫,可以爬取图片下载下来,存到数据库,或者爬取文本 本文共4部分: 写一个最简单的爬虫 爬取淘宝上的模特图片 爬取知乎上的内容,并通过MySQLdb保存到自己建的数据库中 爬取https://www.v2ex.com社区下的所有讨论话题 最简单的爬虫—

pyspider框架学习

六眼飞鱼酱① 提交于 2019-11-29 17:19:40
1.pyspider的安装 pip install pyspider 2. 启动pyspider: 输入 pyspider all 但是启动pyspider 经常遇到没法正常启动,阻塞到 result_worker starting… ,感觉应该是源码有bug 存在,不过没关系,重新在开一个窗口,执行一下 pyspider all 就可以了。 3. 在通过浏览器访问:localhost:5000/ 进入源码编写界面: 查看result结果: 查看数据库存储: 源码可直接运行,先自行在mysql中手动创建表和字段,原本想在代码里链接数据库的时候通过代码创建表和字段,好像有点问题,暂时先注释掉,后续在来看这个问题: from pyspider.libs.base_handler import * import pymysql class Handler(BaseHandler): crawl_config = { } # 连接数据库 def __init__(self): self.db = pymysql.connect(host='127.0.0.1',port=3306,db='qunar',user='root',passwd='123456', charset='utf8',use_unicode=True) #self.cursor = self.db.cursor()

pyspider 安装

放肆的年华 提交于 2019-11-28 22:14:01
1. sudo apt --update 2.sudo apt --upgrade 3. sudo apt-get install ......大一推依赖包。看pyspider 官网 4.创建虚拟环境 5.pip install pyspider 6.pip install pyspider[all] 安装依赖包时报错 :pg_config executalbe not found. 错误原因: Error: pg_config executable not found. pg_config is in postgresql-devel ( libpq-dev in Debian/Ubuntu) 1)安装libpq-dev sudo apt-get install libpq-dev python-dev 2)pip install psycopg2 来源: https://www.cnblogs.com/crave/p/11429348.html

Can Scrapy be replaced by pyspider?

最后都变了- 提交于 2019-11-28 20:15:09
问题 I've been using Scrapy web-scraping framework pretty extensively, but, recently I've discovered that there is another framework/system called pyspider, which, according to it's github page, is fresh, actively developed and popular. pyspider 's home page lists several things being supported out-of-the-box: Powerful WebUI with script editor, task monitor, project manager and result viewer Javascript pages supported! Task priority, retry, periodical and recrawl by age or marks in index page

pyspider+selenium 获取js 加载内容(附源码)

谁说胖子不能爱 提交于 2019-11-28 02:59:39
背景 最近一直在搞论坛的爬虫。爬着爬着,突然遇到一个论坛的反爬虫机制比较强。例如: http://bbs.nubia.cn/forum-64-1.html 。当访问这个页面时,第一次返回的不是html页面,而是加密后的js内容,然后写入cookie,等待设置好的时间,然后跳转到真正的页面。 如下图: 加密混淆后的js 想到的方案: 分析加密的js,看怎么计算出的cookie,是否有规律可以生成该cookie等,然后每次访问时带上此cookie即可。 使用Pypisder自带的PhantomJs脚本,以PhantomJs的方法执行这个加密的JS,然后获取html的内容。 使用Selenium +WebDriver + Headless Chrome的方式获取html的内容。 使用puppeteer + Headless Chrome获取html的内容。 分析方案: 分析加密的js不是件容易的事,要破解加密方法等难度相对较大,时间成本有限,暂时放弃。 本打算使用pyspider自带的phanthomjs方式,结果是phanthoms在访问上面的url时,一直处于卡死的状态;而且phantomjs的作者已经放弃维护它了,对于bug的修复和新的js语法支持力度不够。(需要进一步分析为什么会卡死?) 最终想到了selenium+webdriver+headlesschrome组合神器

python Pyspider 的各种爬坑之路

帅比萌擦擦* 提交于 2019-11-28 01:02:31
  我觉得我有必要写一下这篇文章,为了学习pyspider,花了一天的时间才把这个环境搭建成功,网上的各种解决办法都是零零碎碎的,今天我把我掉进的所有坑都和大家分享一下。   前面一直在学习request pyquery等,今天开始学习了pyspider,关于pyspider,这是国人自己写的爬虫脚本,我还没有用过,不知道怎么样,今天的主题是怎么去解决所遇到的各种错误。使用pyspider首先需要安装pyspider和PhantomJS,在python 3.7.0 scripts命令行里面输入 pip install pyspider   可能会出现以下错误   这时需要安装可以参考一篇博客 https://www.cnblogs.com/xyzpeng/p/10630364.html ,如果觉得不怎么详细的话,可以直接百度搜索pyspider安装错误等关键词,把这个问题解决之后,下面才是今天我遇到的最困难的问题,当在命令行输入pyspider时,会出现关键词async的错误, Traceback (most recent call last): File "C:\Users\86134\AppData\Local\Programs\Python\Python37\Scripts\pyspider-script.py", line 11, in <module> load

PySpider问题记录http599

夙愿已清 提交于 2019-11-26 21:16:35
问题简述 背景说明: python版本 3.5.2 操作流程 : 1.执行pyspider安装: pip install pyspider 2.运行pyspider pyspider all 3.打开浏览器进行任务配置 localhost:5000 4.新增并执行task 错误如下描述 [E 171009 20:37:58 base_handler:203] HTTP 599: SSL certificate problem: unable to get local issuer certificate Traceback (most recent call last): File "d:\python\python35\lib\site-packages\pyspider\libs\base_handler.py", line 196, in run_task result = self._run_task(task, response) File "d:\python\python35\lib\site-packages\pyspider\libs\base_handler.py", line 175, in _run_task response.raise_for_status() File "d:\python\python35\lib\site-packages

Pyspider

♀尐吖头ヾ 提交于 2019-11-26 10:33:21
Pyspider是由国人(binux)编写的强大的网络爬虫系统 Ptspider带有强大的WebUi / 脚本编辑器 / 任务监控器 / 项目管理器以及结果处理器。他支持多种数据库后端 / 多种消息队列 / Javascript 渲染页面爬去。使用起来非常方便 基本功能 提供了方便易用的 WebUi 系统,可视化的编写和调试爬虫 提供爬去进度监控 / 爬去结果查看 / 爬虫项目管理等功能 支持多种后端数据库,如:MySQL / MongoDB / Rides 等 支持多种消息队列,如:RabbimMQ / Beanstalk / Redis / Kombu 提供优先级控制 / 失败重试 / 定时抓取等 对接了PhantonJS。可以抓取Javascript 渲染的页面 支持单机和分布式部署,支持 Docker 部署 Pyspider 和 Scrapy Pyspider 提供了 WebUi ,爬虫编写 / 调试都是在WebUi 中进行的。 Scrapy原生是不具备这个功能的,他采用的代码和命令行的操作,但是可以通过对接Portia 实现可视化配置 Pyspider 调试非常便捷,WebUi 操作便捷直观 Scrapy 是使用parse 命令进行调试,方便程度不及Pyspider Pyspider 支持PhantomJS 来进行Javascript 渲染页面的采集。 Scrapy

docker快速搭建分布式爬虫pyspider

天大地大妈咪最大 提交于 2019-11-26 04:32:12
简介 pyspider是Python中强大Web爬虫框架,并且支持分布式架构。 为什么使用docker搭建pyspider 在安装pyspider时爬过一些坑,比如使用pip install pyspider时,python的版本要求在3.6及以下,因为async等已经是python3.7的关键字; 使用git clone代码安装pyspider, python3 setup.py intall ,使用过程会遇到ssl证书的问题,总而言之,可能会遇到版本兼容问题。 使用docker部署pyspider docker的安装不做说明; 直接进入正题。 docker network create --driver bridge pyspider mkdir -p /volume1/docker/Pyspider/mysql/{conf,logs,data}/ /volume1/docker/Pyspider/redis/ docker run --network=pyspider --name redis -d -v /volume1/docker/Pyspider/redis:/data -p 6379:6379 redis docker run --network pyspider -p 33060:3306 --name pymysql -v /volume1/docker