scraperwiki库的本地版本
scraperwiki的Python项目详细描述
这是一个用于抓取网页和保存数据的python库。 这是在scraperwiki平台上保存数据的最简单方法,而且 也可以在本地或您自己的服务器上使用。
安装
pip install scraperwiki
刮削
- scraperwiki.scrape(url[,params][,用户代理])
返回从给定url下载的字符串。
params如果已设置,则作为post发送。
user_agent设置用户代理字符串(如果提供)。
保存数据
用于保存和查询SQL数据库的帮助函数。更新 根据您保存的数据自动生成架构。
目前只支持sqlite。它将生成一个本地sqlite数据库。 它基于[sqlalchemy](https://pypi.python.org/pypi/SQLAlchemy)。 您应该期望它在以后支持其他sql数据库。
- scraperwiki.sql.save(唯一键,data[,table_name=“swdata”])
将数据记录保存到由table_name给定的表中的数据存储中。
data是一个字段名为keys的dict对象;unique_keys是data.keys()的子集,它确定何时覆盖记录。对于大量记录,数据可以是dict的列表。
scraperwiki.sql.save有权缓冲任意数量的 行直到下一次通过scraperwiki api读取时,出现异常, 或直到进程退出。努力做一个及时的定期冲洗。 如果进程遇到严重崩溃、断电,则可能会丢失记录 或者sigkill,因为在内存不足的情况下内存使用率很高。这个 可以使用scraperwiki.sql.flush()手动刷新缓冲区。
- scraperwiki.sql.execute(sql[,vars])
执行任意sql命令。例如创建、删除、插入或删除。
vars是可选的参数列表,当sql命令包含'?例如:
scraperwiki.sql.execute("INSERT INTO swdata VALUES (?,?,?)", [a,b,c])
那个'?'约定类似于Python’s DB API 2.0中的“paramstyle qmark”(但请注意,数据存储的api与python的dbapi完全不同)。尤其是'?'本身不需要引号,通常只能在出现文字的地方使用。(请注意,不能替换表或列名等中的名称。)
- scraperwiki.sql.select(sqlfrag[,vars])
在数据存储上执行select命令。例如:
scraperwiki.sql.select("* FROM swdata LIMIT 10")
返回已选择的dict的列表。
vars是可选的参数列表,当select命令包含'?这就像上面的.execute命令中的特性。
- scraperwiki.sql.commit()
- 在一系列执行命令之后提交到文件。(每次操作后保存自动提交)。
- scraperwiki.sql.show_tables([dbname])
- 返回当前数据库中表及其架构的数组。
- scraperwiki.sql.table_info(name)
- 返回表中每个元素的属性数组。
- scraperwiki.sql.save_var(键,值)
- 将任意单个值保存到名为swvariables的表中。用于存储刮刀状态,以便刮刀在中断后可以继续。
- scraperwiki.sql.get_var(key[,default])
- 检索由save_var保存的单个值。仅适用于字符串、浮点或int类型。对于其他内容,请使用pickle library将其转换为字符串。
其他
- scraperwiki.status(type,message=none)
- 如果在scraperwiki平台(新平台,而不是经典平台)上运行,则更新数据集的可见状态。如果不在平台上,什么也不做。params可以是“确定”或“错误”。如果没有给出message,它将显示自更新以来的时间。有关详细信息,请参见文档中的dataset status API。
- scraperwiki.pdftoxml(pdfdata)
- 将包含pdf文件的字节字符串转换为包含每个文本字符串的坐标和字体的xml文件(有关详细信息,请参见the pdftohtml documentation)。
环境变量
- scraperwiki\u数据库名称
- 默认值:scraperwiki.sqlite-数据库的名称
- scraperwiki\u数据库超时
- 默认值:300-数据库等待锁的秒数