XB写法说明.json 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384
  1. {
  2. // 所有的选填字段都可以不填,程序会自己去猜,不一定能猜得出来,猜不出来的得自己去补规则
  3. //(必填) 主页地址,建议填list段中的url,程序会从url中提取homeUrl, url中至少要包含{cateId}和{catePg}才能被识别
  4. // https://www.zxzj.vip/vodshow/{cateId}-{area}--{class}-----{catePg}---{year}.html
  5. // https://www.zxzj.vip/list/{cateId}-{catePg}.html
  6. "homeUrl": "https://www.zxzj.vip/",
  7. //(选填) http请求需要的header,一般就填个UA
  8. "header":{
  9. "User-Agent":"Mozilla/5.0 (Linux; Android 8.1.0; ALP-AL00 Build/HUAWEIALP-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/63.0.3239.83 Mobile Safari/537.36 T7/10.13 baiduboxapp/10.13.0.11 (Baidu; P1 8.1.0)"
  10. },
  11. //(选填) 分类名
  12. "cateManual": {
  13. "电影": "1",
  14. "美剧": "2",
  15. "韩剧": "3",
  16. "日剧": "4",
  17. "泰剧": "5",
  18. "动漫": "6"
  19. },
  20. //(选填) 列表页
  21. "list":{
  22. //(选填) 当前页面解析区域截取,程序会从截取后的数据中查找各字段,这里只是演示,按实际需求填写
  23. "region":["<html>", "</html>"],
  24. //"url": "https://www.zxzj.vip/list/{cateId}-{catePg}.html",
  25. //(选填) 列表页的页面地址,具体规则和xpath一致,不存在在里会使用homeUrl,但是homeUrl必须是带{cateId}\{catePg}的这个格式
  26. "url": "https://www.zxzj.vip/vodshow/{cateId}-{area}--{class}-----{catePg}---{year}.html",
  27. // (选填) 有的网站分类的第一页和后面的页url规则不同,可以这样指定具体的catePg 对应的url
  28. //"1": "https://www.zxzj.vip/vodshow/{cateId}-{area}--{class}-----1---{year}.html",
  29. // 视频ID,列表页不能正常显示一般都是这个规则不对
  30. // 爬虫使用JSONArray来获取相关字段内容,JSONArray中共用到5个参数,具体说明:
  31. // 1 要获取字段的前缀,必填
  32. // 2 要获取字段的后缀,必填,这两个参数确定后一般要取的字段就出来了
  33. // 3 获取到字段后该字段正确值的左偏移量,真正的值会加上这个偏移量,默认为0
  34. // 4 获取到字段后该字段正确值的右偏移量,真正的值会加上这个偏移量,默认为0
  35. // 5 定位到该字段后,往上回溯的层级(往上数祖先节点,如果当前字段没有匹配到标签的起始位置也要算一个节点),具体是要找到包含当前页各字段的那部分代码(本页要求的如 vod_id, vod_name vod_pic)
  36. "vod_id": ["href=\"/detail/", ".html",0,0,3],
  37. //(选填) 视频名
  38. "vod_name": ["title=\"", "\""],
  39. //(选填) 图片
  40. "vod_pic":["data-original=\"", "\""],
  41. //(选填) 副标题
  42. "vod_remarks":["<span class=\"pic-text text-right\">","</span>"]
  43. },
  44. //(选填) 详情页
  45. "detail":{
  46. //(选填) 当前页面解析区域截取,程序会从截取后的数据中查找各字段,这里只是演示,按实际需求填写
  47. "region":["<html>", "</html>"],
  48. //(选填) 详情页的url, 不存在时会使用list.vod_id进行推算
  49. "url": "https://www.zxzj.vip/detail/{vid}.html",
  50. //(选填) 视频名
  51. "vod_name":["<h1 class=\"title\">", "</h1>"],
  52. //(选填) 视频图片
  53. "vod_pic": ["<img class=\"lazyload\" data-original=\"","\""],
  54. //(选填) 演员
  55. "vod_actor":[">主演:","</p>"],
  56. //(选填) 导演,需要有一个字段说明回溯层级,一般选用导演字段
  57. "vod_director":[">导演:", "</p>",0,0,2],
  58. //(选填) 地区
  59. "vod_area":["地区:", "/"],
  60. //(选填) 年份
  61. "vod_year":["年份:", "/"],
  62. //(选填) 类型
  63. "vod_type":["类型:", "/"],
  64. //(选填)
  65. "vod_remarks":["更新:","</p>"],
  66. //(选填) 视频简介
  67. "vod_content":["简介:","</p>"]
  68. },
  69. //(选填) 播放列表页
  70. "playlist":{
  71. //(选填) 当前页面解析区域截取,程序会从截取后的数据中查找各字段,这里只是演示,按实际需求填写
  72. "region":["<html>", "</html>"],
  73. //(选填) 当sort为1时会对找到播放列表进行倒序
  74. "sort": 0,
  75. //(选填) 播放列表页的url, 一般都和详情页的地址一样,有部分网站的播放页和详情页不同时才填这个字段
  76. "url": "https://www.zxzj.vip/detail/{vid}.html",
  77. //(选填) 播放url的字段规则,这里需要回溯到包含单个播放源全部play_url的html节点
  78. "vod_play_url": ["i><a href=\"/video/", "\"",-7,0,2],
  79. //(选填) 播放地址的名称
  80. "vod_play_url_title": [".html\">", "<"],
  81. //(选填) 播放源的名称,如果有的话需要,查找到的播放列表会根据该字段的内容顺序进行排序
  82. "vod_play_from": [
  83. // 如果播放源的名称不能保证在页面上是唯一的
  84. ["<h3>播放线路4</h3>", "播放线路4(别名)"],
  85. "迅雷云盘", "百度网盘", ["DP播放"] , "播放线路3", "CK播放"
  86. ]
  87. },
  88. //(选填) 播放页,不用去管,用来尝试解析直链的
  89. "play":{
  90. //(选填) 当前页面解析区域截取,程序会从截取后的数据中查找各字段,这里只是演示,按实际需求填写
  91. "region":["<html>", "</html>"],
  92. // (选填) 嗅探关键字,有的网站视频url有特殊关键字的可以在这里指明
  93. "keywords":[".mp4", ".m3u8", ".flv"]
  94. },
  95. //(选填) 搜索页 search 不存在时会先去尝试json搜索接口,如果网站不支持再去页面上找搜索页的url
  96. "search":{
  97. //(选填) 当前页面解析区域截取,程序会从截取后的数据中查找各字段,这里只是演示,按实际需求填写
  98. "region":["<html>", "</html>"],
  99. // 搜索页的URL
  100. "url": "https://zxzj.vip/vodsearch/-------------.html?wd={wd}",
  101. //(选填) 视频ID
  102. "vod_id": ["/detail/", ".html",0,0,3],
  103. //(选填) 视频名
  104. "vod_name": ["title=\"", "\""],
  105. //(选填) 图片
  106. "vod_pic":["data-original=\"", "\""],
  107. //(选填) 副标题
  108. "vod_remarks":["<span class=\"pic-text text-right\">","</span>"]
  109. },
  110. // json格式的搜索接口示例
  111. // "search":{
  112. // "url": "https://www.llyady.cc/index.php/ajax/suggest?mid=1&wd={wd}",
  113. // "lookback": 3,
  114. // "vod_id": "id",
  115. // "vod_name": "name",
  116. // "vod_pic":"pic"
  117. //}
  118. //(选填) 过滤相关规则,需要配合list.url使用
  119. // Filters =======================================================
  120. "filter": {
  121. "1": [
  122. {
  123. "key": "class",
  124. "name": "剧情",
  125. "value": [
  126. {"n": "全部剧情","v": ""},
  127. {"n": "喜剧","v": "喜剧"},
  128. {"n": "爱情","v": "爱情"},
  129. {"n": "恐怖","v": "恐怖"},
  130. {"n": "动作","v": "动作"},
  131. {"n": "科幻","v": "科幻"},
  132. {"n": "剧情","v": "剧情"},
  133. {"n": "战争","v": "战争"},
  134. {"n": "警匪","v": "警匪"},
  135. {"n": "犯罪","v": "犯罪"},
  136. {"n": "动画","v": "动画"},
  137. {"n": "奇幻","v": "奇幻"},
  138. {"n": "冒险","v": "冒险"}
  139. ]
  140. },
  141. {
  142. "key": "area",
  143. "name": "地区",
  144. "value": [
  145. {"n": "全部","v": ""},
  146. {"n": "大陆","v": "大陆"},
  147. {"n": "香港","v": "香港"},
  148. {"n": "台湾","v": "台湾"},
  149. {"n": "欧美","v": "欧美"},
  150. {"n": "韩国","v": "韩国"},
  151. {"n": "日本","v": "日本"},
  152. {"n": "泰国","v": "泰国"},
  153. {"n": "印度","v": "印度"},
  154. {"n": "俄罗斯","v": "俄罗斯"},
  155. {"n": "其他","v": "其他"}
  156. ]
  157. },
  158. {
  159. "key": "year",
  160. "name": "年份",
  161. "value": [
  162. {"n": "全部","v": ""},
  163. {"n": "2022","v": "2022"},
  164. {"n": "2021","v": "2021"},
  165. {"n": "2020","v": "2020"},
  166. {"n": "2019","v": "2019"},
  167. {"n": "2018","v": "2018"},
  168. {"n": "2017","v": "2017"},
  169. {"n": "2016","v": "2016"},
  170. {"n": "2015","v": "2015"},
  171. {"n": "2014","v": "2014"},
  172. {"n": "2013","v": "2013"},
  173. {"n": "2012","v": "2012"},
  174. {"n": "2011","v": "2011"},
  175. {"n": "2010","v": "2010"},
  176. {"n": "2009","v": "2009"},
  177. {"n": "2008","v": "2008"},
  178. {"n": "2007","v": "2007"},
  179. {"n": "2006","v": "2006"},
  180. {"n": "2005","v": "2005"},
  181. {"n": "2004","v": "2004"},
  182. {"n": "2003","v": "2003"},
  183. {"n": "2002","v": "2002"},
  184. {"n": "2001","v": "2001"},
  185. {"n": "2000","v": "2000"}
  186. ]
  187. }
  188. ],
  189. "2": [
  190. {
  191. "key": "class",
  192. "name": "剧情",
  193. "value": [
  194. {"n": "全部剧情","v": ""},
  195. {"n": "剧情","v": "剧情"},
  196. {"n": "喜剧","v": "喜剧"},
  197. {"n": "爱情","v": "爱情"},
  198. {"n": "动作","v": "动作"},
  199. {"n": "悬疑","v": "悬疑"},
  200. {"n": "恐怖","v": "恐怖"},
  201. {"n": "奇幻","v": "奇幻"},
  202. {"n": "惊悚","v": "惊悚"},
  203. {"n": "犯罪","v": "犯罪"},
  204. {"n": "科幻","v": "科幻"},
  205. {"n": "音乐","v": "音乐"},
  206. {"n": "其他","v": "其他"}
  207. ]
  208. },
  209. {
  210. "key": "year",
  211. "name": "年份",
  212. "value": [
  213. {"n": "全部","v": ""},
  214. {"n": "2022","v": "2022"},
  215. {"n": "2021","v": "2021"},
  216. {"n": "2020","v": "2020"},
  217. {"n": "2019","v": "2019"},
  218. {"n": "2018","v": "2018"},
  219. {"n": "2017","v": "2017"},
  220. {"n": "2016","v": "2016"},
  221. {"n": "2015","v": "2015"},
  222. {"n": "2014","v": "2014"},
  223. {"n": "2013","v": "2013"},
  224. {"n": "2012","v": "2012"},
  225. {"n": "2011","v": "2011"}
  226. ]
  227. }
  228. ],
  229. "3": [
  230. {
  231. "key": "class",
  232. "name": "剧情",
  233. "value": [
  234. {"n": "全部剧情","v": ""},
  235. {"n": "剧情","v": "剧情"},
  236. {"n": "喜剧","v": "喜剧"},
  237. {"n": "爱情","v": "爱情"},
  238. {"n": "动作","v": "动作"},
  239. {"n": "悬疑","v": "悬疑"},
  240. {"n": "恐怖","v": "恐怖"},
  241. {"n": "奇幻","v": "奇幻"},
  242. {"n": "惊悚","v": "惊悚"},
  243. {"n": "犯罪","v": "犯罪"},
  244. {"n": "科幻","v": "科幻"},
  245. {"n": "音乐","v": "音乐"},
  246. {"n": "其他","v": "其他"}
  247. ]
  248. },
  249. {
  250. "key": "year",
  251. "name": "年份",
  252. "value": [
  253. {"n": "全部","v": ""},
  254. {"n": "2022","v": "2022"},
  255. {"n": "2021","v": "2021"},
  256. {"n": "2020","v": "2020"},
  257. {"n": "2019","v": "2019"},
  258. {"n": "2018","v": "2018"},
  259. {"n": "2017","v": "2017"},
  260. {"n": "2016","v": "2016"},
  261. {"n": "2015","v": "2015"},
  262. {"n": "2014","v": "2014"},
  263. {"n": "2013","v": "2013"},
  264. {"n": "2012","v": "2012"},
  265. {"n": "2011","v": "2011"}
  266. ]
  267. }
  268. ],
  269. "4": [
  270. {
  271. "key": "class",
  272. "name": "剧情",
  273. "value": [
  274. {"n": "全部剧情","v": ""},
  275. {"n": "剧情","v": "剧情"},
  276. {"n": "喜剧","v": "喜剧"},
  277. {"n": "爱情","v": "爱情"},
  278. {"n": "动作","v": "动作"},
  279. {"n": "悬疑","v": "悬疑"},
  280. {"n": "恐怖","v": "恐怖"},
  281. {"n": "奇幻","v": "奇幻"},
  282. {"n": "惊悚","v": "惊悚"},
  283. {"n": "犯罪","v": "犯罪"},
  284. {"n": "科幻","v": "科幻"},
  285. {"n": "音乐","v": "音乐"},
  286. {"n": "其他","v": "其他"}
  287. ]
  288. },
  289. {
  290. "key": "year",
  291. "name": "年份",
  292. "value": [
  293. {"n": "全部","v": ""},
  294. {"n": "2022","v": "2022"},
  295. {"n": "2021","v": "2021"},
  296. {"n": "2020","v": "2020"},
  297. {"n": "2019","v": "2019"},
  298. {"n": "2018","v": "2018"},
  299. {"n": "2017","v": "2017"},
  300. {"n": "2016","v": "2016"},
  301. {"n": "2015","v": "2015"},
  302. {"n": "2014","v": "2014"},
  303. {"n": "2013","v": "2013"},
  304. {"n": "2012","v": "2012"},
  305. {"n": "2011","v": "2011"}
  306. ]
  307. }
  308. ],
  309. "5": [
  310. {
  311. "key": "year",
  312. "name": "年份",
  313. "value": [
  314. {"n": "全部","v": ""},
  315. {"n": "2022","v": "2022"},
  316. {"n": "2021","v": "2021"},
  317. {"n": "2020","v": "2020"},
  318. {"n": "2019","v": "2019"},
  319. {"n": "2018","v": "2018"},
  320. {"n": "2017","v": "2017"},
  321. {"n": "2016","v": "2016"},
  322. {"n": "2015","v": "2015"},
  323. {"n": "2014","v": "2014"},
  324. {"n": "2013","v": "2013"},
  325. {"n": "2012","v": "2012"},
  326. {"n": "2011","v": "2011"}
  327. ]
  328. }
  329. ],
  330. "6": [
  331. {
  332. "key": "class",
  333. "name": "剧情",
  334. "value": [
  335. {"n": "全部剧情","v": ""},
  336. {"n": "情感","v": "情感"},
  337. {"n": "科幻","v": "科幻"},
  338. {"n": "热血","v": "热血"},
  339. {"n": "推理","v": "推理"},
  340. {"n": "搞笑","v": "搞笑"},
  341. {"n": "冒险","v": "冒险"},
  342. {"n": "萝莉","v": "萝莉"},
  343. {"n": "校园","v": "校园"},
  344. {"n": "动作","v": "动作"},
  345. {"n": "机战","v": "机战"},
  346. {"n": "运动","v": "运动"},
  347. {"n": "战争","v": "战争"},
  348. {"n": "少年","v": "少年"}
  349. ]
  350. },
  351. {
  352. "key": "area",
  353. "name": "地区",
  354. "value": [
  355. {"n": "全部","v": ""},
  356. {"n": "国产","v": "国产"},
  357. {"n": "日本","v": "日本"},
  358. {"n": "欧美","v": "欧美"},
  359. {"n": "其他","v": "其他"}
  360. ]
  361. },
  362. {
  363. "key": "year",
  364. "name": "年份",
  365. "value": [
  366. {"n": "全部","v": ""},
  367. {"n": "2022","v": "2022"},
  368. {"n": "2021","v": "2021"},
  369. {"n": "2020","v": "2020"},
  370. {"n": "2019","v": "2019"},
  371. {"n": "2018","v": "2018"},
  372. {"n": "2017","v": "2017"},
  373. {"n": "2016","v": "2016"},
  374. {"n": "2015","v": "2015"},
  375. {"n": "2014","v": "2014"},
  376. {"n": "2013","v": "2013"},
  377. {"n": "2012","v": "2012"},
  378. {"n": "2011","v": "2011"}
  379. ]
  380. }
  381. ]
  382. }
  383. }