作品

抓取各种关于作品的信息!

作品信息的抓取可以让我们很方便的对各种作品进行操作,包括在面对他人刷屏的情况下自动删除评论;自动回复每一条评论等。

getWorkId

getWorkId方法可以解析出一个作品url的作品Id

函数构造:

def getWorkId(self,site)

其中site表示要解析的作品网址。

示例:

import turingAPI
print(turingAPI.icodeUser().getWorkId(
'https://icodeshequ.youdao.com/work/4f011adee17f4bc386f90e2786ebaf39?from=discovery'))

#will print : 4f011adee17f4bc386f90e2786ebaf39

getWorkId会自动过滤掉访问参数,它的核心算法为:

return urllib.parse.urlparse(site)[2].split('/')[2]

getWorkDetail

getWorkDetail可以让您查询一个作品的信息。这对Scratch , Python , Blockly类型的作品都有效。

函数构造:

workId为需要查询的作品Id ,

isParse为是否自动解析结果,默认为False。

当isParse为假的情况下,getWorkDetail将返回一个urllib3的响应对象,如果您想知道如何操控该对象,请前往urllib3教程文档。而为真的情况下,getWorkDetail将会返回一个作品信息的详细字典。当作品Id不合法时,可能会报错。

返回字典的格式示例:

这是Scratch作品的标准返回形式。其他两种类型可能有些不一样的地方,但是其实都不影响实际操作。

示例:

getWorkComments

getWorkComments用于获取一个作品的所有评论及其信息。并可以实现分页等操作。

函数构造:

workId 是您要查询的作品Id ,

page指定了需要查询多少页评论,

getNum指定一页包含多少条评论。

isParse是可选的,默认为False。如果为真,则会返回一个经过解析的结果。

当isParse为假的情况下,getWorkComments将返回一个urllib3的响应对象,如果您想知道如何操控该对象,请前往urllib3教程文档。而为真的情况下,getWorkDetail将会返回一个获取到的评论的详细列表。当作品Id不合法时,可能会报错。

当isParse为真时的返回列表格式:

如有更多评论,每个评论都遵守上列表里面元素的格式,如

示例:删除一个作品中的一页评论:

getMoreWorks

getMoreWorks用于获取一个作品的“TA的更多作品”这个栏位。

虽然没什么用,但还是写了

函数构造:

userIdOrWorkId 可以是一个userId , 也可以是一个workId 。但是该函数在底层的请求方式还是使用userId进行请求,所以推荐使用userId传参。如果您传入的是一个workId,则需要经过一轮解析才能进行发送请求,较为慢速。

isParse是可选的,默认为False。如果您将其改为1,返回的将是一个经过解析的结果,形式为列表。

如果isParse参数被设置为真时,方法返回的格式为:

如返回了多个作品信息,则每个作品都如上图的字典格式一般储存

当isParse为假的情况下,getMoreWorks将返回一个urllib3的响应对象,如果您想知道如何操控该对象,请前往urllib3教程文档。如果您传入了一个错误的workId,程序可能会报错。

discoveryWorks

discoveryWorks主要用于查询目前发现页的最新作品。相比于getWorks方法,discoveryWorks提供了一个更简便、易于调用的最新作品查询器,且速度较快。

函数构造:

page表示您要查询的页数。

isParse表示是否自动解析,如果为真,则自动解析,反则不解析。

当isParse为假的情况下,discoveryWorks将返回一个urllib3的响应对象,如果您想知道如何操控该对象,请前往urllib3教程文档。而为真的情况下,discoveryWorks将会返回一个获取到的作品的详细列表。

当isParse为真时,该方法返回的格式为:

在返回多个作品信息时,每个作品将遵循上面字典的格式。

getWorks

getWorks方法用于获取有道小图灵的所有作品。它支持按最新发布和最多点赞的排序方法来返回结果,也支持使用keyWord查询关键字作品。还可以使用编程语言和作品主题的形式来区别并返回结果。

不同于discoveryWorks,getWorks显得更加强大且功能丰富。

函数构造:

page表示您要查询的作品页数;

getNum表示一页有多少作品;

sortType表示您查询时选择的排序方式,1则为按点赞量从大到小排序,2则为按发布时间从现在往以前排序;

theme则为查询时特定的作品主题,是可选的,可以为all , play , story , art , minecraft , scratch , turtle ;

codeLanguage表示查询时特定的作品语言类型,是可选的,可以为all , blockly , scratch , python ;

keyword表示您在查询时特别指定的查询关键字,是可选的,默认为不搜索(即显示全部),您可以传入任意您想搜索的关键字;

isParse代表返回的结果是否经过自动解析,是可选的,默认为假,您需要填入一个布尔值。

在β0.1版本之前,getWorks的isParse参数默认为真,这是开发时的疏忽。在β0.1版本中,该问题被修复。

当isParse为假的情况下,getWorks将返回一个urllib3的响应对象,如果您想知道如何操控该对象,请前往urllib3教程文档。而为真的情况下,getWorks将会返回一个获取到的作品的详细列表。

当isParse为真的情况下,getWorks方法的返回格式为:

在返回多个作品时,每个作品都遵循上面字典的格式。

示例:

获取榜一作品的信息

getMyWorks

顾名思义,该函数用于获取当前登录的用户自己的作品。

不同于getPersonWorks,getMyWorks能够查看自己尚未发布的作品。

函数构造:

page 代表您要查询的作品页数

getNum 代表您在查询时一页返回的作品个数

status 代表查询的类别,1代表查询未发布作品,2代表查询已发布作品,这个参数是可选的。默认为2.

theme 查询时指定的作品主题,可以填入 all , play , story , art , minecraft , scratch , turtle 。这个参数是可选的。默认为all.

codeLanguage 查询时指定的作品语言,可以填入 all , blockly , scratch , python 。这个参数是可选的。默认为all.

keyword 代表您要查询时查询的关键字,这个参数是可选的,默认为空字符串(不搜索,显示全部)

isParse 代表该函数返回的结果是否经过解析,为真或假,是可选的,默认为假。

当isParse为假的情况下,getMyWorks将返回一个urllib3的响应对象,如果您想知道如何操控该对象,请前往urllib3教程文档。而为真的情况下,getMyWorks将会返回一个获取到的作品的详细列表。

当isParse参数为真时,getMyWorks的返回格式为:

当返回多个作品时,每个作品都遵循以上字典的格式

示例:

getWorkSubmitInfo

getWorkSubmitInfo方法主要用于获取一个作品发布时携带的数据包信息,相比于getWorkDetail,它可以获取更多信息。

它获取到的内容和submitScratch所携带的数据包格式大体相同,您可以将它们结合在一起使用。这个方法在turingAPI beta0.3才被正式加入。

函数构造:

workId : 要获取的作品Id

isParse : 是否返回解析的结果,一个真假值。

当isParse为假的情况下,getWorkSubmitInfo将返回一个urllib3的响应对象,如果您想知道如何操控该对象,请前往urllib3教程文档。而为真的情况下,getWorkSubmitInfo将会返回一个获取到的作品的详细字典。

当isParse为真,scratch作品的返回格式为:

Python为:

相比于scratch,codeType变为空字符串,添加了code健,代表作品源码。

Last updated