用于从ebird等在线数据库下载鸟类清单的web scraper。

checklists_scrapers的Python项目详细描述


一组用于从鸟类观察的在线数据库下载记录的web scrapers。刮板可用于:

:ebird:
康奈尔大学鸟类学实验室主持的数据库,
覆盖美洲、大洋洲和越来越多的欧洲国家的记录。

WorldBirds(国际鸟盟),
覆盖了地中海和非洲国家。


EBIRD API只提供过去30天的清单记录,因此必须定期运行刮板。它们旨在提供记录的
连续更新,因此非常适合镜像可用的
记录的子集(例如,对于给定的区域),这样您就不必重复运行报告或提交来自数据库主机的数据请求。


---------
清单刮削器被写入不同数据库的聚合记录中,以便加载到
`Django清单<;http://github.com/stuartmackay/django清单>;``u
数据库中。但是,由于下载的清单是json格式,因此文件
可以与任何类似的数据库一起使用。


葡萄牙,阿瑞。所有下载的清单都加载到一个数据库中,该数据库用于发布最新的新闻以及生成年度报告。


将来自多个数据库的
观察结果与scrapers聚合在一起,使这项任务变得更加容易。


pypi提供了scrapers的安装和配置。您可以使用pip或
easy_install::

pip install checklist_scrapers

scrapers是使用scrapy引擎构建的,该引擎使用与django相同的设置来设置配置和运行时值。设置文件被配置为从环境变量初始化其值。这使得配置scraper变得很容易,特别是对于最常见的用例,
从cron等调度程序运行它们。


唯一需要的设置是告诉scrapy(scraper使用的引擎)
设置模块的路径:

gs_module=checklists_scrapers.settings


其余设置具有合理的默认值,因此只有那些
依赖于安装的设置,例如用于发送状态报告的邮件服务器。这是一个脚本,用于运行cron中的lisboa的scraper来进行birding
lisboa::

/bin/bash

export scrapy_settings_module=checklist_scrapers.settings



export download_dir=/tmp/checklist_scrapers

export mail_host=mail.example.com
export mail_port=25
export mail_user=<;user>;
expORT mail_pass=<;password>;
export mail_from=scrapers@example.com

export report_recipients=admins@example.com


source/home/project/venv/bin/activate
cd/home/project

scrapy craw ebird-a region=pt-11
scrapy craw ebird-a region=pt-15

当使用-s
选项运行刮片机时,也可以定义设置::


scrapy craw ebird-a region=pt-15-s logu level=debug

ebird-a region=pt-15-s download\u dir=downloads

te:环境变量使用前缀"checklist"作为名称空间
,以避免干扰任何其他变量。当在运行scrapers时使用-s选项定义设置
时,必须删除此前缀::


注意:report_recipients是一个以逗号分隔的列表,其中包含一个或多个
电子邮件地址。默认值为空字符串,因此不会发送状态报告
。但是,如果日志级别设置为"调试",则状态
报告将写入
download\u dir目录中的checklist\u scrapers\u status.txt文件。


值,例如
要从哪个区域下载观察结果以及需要帐户访问数据的scraper的登录详细信息::


scrapy craw ebird-a region=pt-11


scrapy craw worldbirds-a username=<;user>;-a pass=<;pass>;-a country=uk

se通过每个spider的文档获取命令行参数和
设置的列表。

如果日志级别设置为"调试",则报告也会写入检查表下载到的目录中。报告
包含已下载清单的列表以及错误(包括
堆栈跟踪)和任何警告::

日期:2014年1月3日
时间:11:00

--————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————--
网址:http://ebird.org/ebird/view/checklist?subid=s16110101
回溯(最近一次调用):
文件"/home/birdinglisboa/venv/local/lib/python2.7/site packages/twisted/internet/base.py",第1201行,在主循环中
self.rununtilccurrent()
文件"/home/birdinglisboa/venv/local/lib/python2.7/site-packages/twisted/internet/base.py",第824行,在rununtlcurrent
call.func(*call.args,**call.kw)
file"/home/birdinglisboa/venv/local/lib/python2.7/site packages/twisted/internet/defer.py",第382行,在callback
self.\startruncallbacks(result)
file"/home/birdinglisb"oa/venv/local/lib/python2.7/site packages/twisted/internet/defer.py",第490行,在"startruncallbacks"中
self.\u runcallbacks()
--<;这里捕获到异常>;--
文件"/home/birdinglisboa/venv/local/lib/python2.7/site packages/twisted/internet/defer.py",第577行,在"r"uncallbacks
current.result=callback(current.result,*args,**kw)
file"/home/birdinglisboa/venv/local/lib/python2.7/site packages/checklist\u scrapers/spider/ebird\u spider.py",第585行,在parse\u checklist中
checklist=self.merge\u checklist(original,update)
文件"/home/birdinglisboa/venv/local/lib/python2.7/site packages/checklists_scrapers/spiders/ebird_spider.py",第602行,在merge_checklists中
原始的['entries'],更新['entries'])
文件"/home/birdinglisboa/venv/local/lib/python2.7/site-packages/checklists_scrapers/spiders"/ebird_spider.py",第695行,合并项中
如果在键[索引]中计数:
异常。类型错误:字符串索引必须是整数

----
-
警告
-
-<2014-01-01 11:55,parque da paz
api:http://ebird.org/ws1.1/data/obs/loc/最近的?r=l1127099&detail=full&back=7&includeprovision=true&fmt=json
网址:http://ebird.org/ebird/view/checklist?subid=s16160707
could不从api更新记录。匹配的记录有2条:species=white wagtail;count=4。


如果
有错误,那么errors部分中的堆栈跟踪是有用的,但它也是第一个表明被刮除的
信息的格式已更改的指示。在这两种情况下,都将其作为问题报告,并将得到修复。


警告通常是信息性的。这里会产生一个警告,因为
检查表包含两个相同数量的API记录中的白色摇尾-
只有物种被报告,关于亚种的信息被删除。但是
亚种在清单网页上有报告。这意味着,当web
页面被删除时,无法区分这两个记录。
应编辑记录以添加任何有用的信息,如注释,
,这些信息仅可从web页面获得。


链接:http://checklists_scrapers.readthedocs.org/
*存储库:https://github.com/stuartmackay/checklists_scrapers/
*包:https://pypi.python.org/pypi/checklists_scrapers/
*buildbot:http://travis ci.org/!/Stuartmackay/检查表图片::https://secure.travis-ci.org/stuartmackay/checklists.png?branch=master
:目标:http://travis ci.org/stuartmackay/checklists撸u scrapers/


许可证

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spring freemarker多模板加载程序路径   在java插件中从控制台获取输入   java在包中创建继承类   网页抓取Java Jsoup网页抓取   java在线程内创建一个对象,而true条件具有相同的引用   java如何根据空格数拆分字符串   java新的安卓 studio更新中的配置文件“app”是什么?   java在将ArrayList写入/读取到文件时出现奇怪的问题   java Reg替换文本块第一次出现+最后一次出现   java当我单击任何RecyclerView列表项时,如何在MainActivity的EditText中显示特定的单击项?   JAVA XML删除节点仅删除第一个外观   java如何在数组中查找特定值   java SVG/矢量图形对象布尔运算(并集、交集、减法)   java在Android中创建线程需要多长时间   尝试从JBOSS联系Oracle LDAP服务器时发生java连接重置异常   java基于参数获取特定的实现实例   使用java就地修改文件内容   java MonetaryException:未加载MonetaryAmountsSingletonSpi   java接受用户的不同输入并使其触发完全相同的代码段的最短方法是什么   Spring 3.2.8应用程序中未找到java HTTP 404错误