def parse_episodes(self, response): episodes_d = xml_to_dict(response.body) comicItem = response.request.meta["item"] comicItem["episodes"].append(dict(name=response.request.meta["episode_name"], data=episodes_d["data"])) if len(comicItem["episodes"]) == response.request.meta["episodes_num"]: self.log(comicItem, "comicItem") yield comicItem
def parse_detail_page(self, response): vod_detail_d = xml_to_dict(response.body) meta = response.request.meta comicItem = ComicItem() comicItem["actor"] = vod_detail_d["data"]["actor"] comicItem["desc"] = vod_detail_d["data"]["desc"] comicItem["director"] = vod_detail_d["data"]["director"] comicItem["img"] = vod_detail_d["data"]["img"] comicItem["name"] = vod_detail_d["data"]["name"] comicItem["site"] = vod_detail_d["data"]["site"] comicItem["title"] = meta["title"] comicItem["detail_url"] = meta["detail_url"] comicItem["thumbnail"] = meta["thumbnail"] comicItem["tags"] = meta["tags"] comicItem["episodes"] = [] vod_detail_d["data"]["url"]["foobar"] = self.make_dict_iterable(vod_detail_d["data"]["url"]["foobar"]) episodes_num = len(vod_detail_d["data"]["url"]["foobar"]) for url in vod_detail_d["data"]["url"]["foobar"]: yield Request( url["url"], meta={"item": comicItem, "episode_name": url["name"], "episodes_num": episodes_num}, callback=self.parse_episodes, )
def parse(self, response): tv_live_d = xml_to_dict(response.body) item = HDPLiveTVItem() item['data'] = tv_live_d return item