设为首页 收藏本站
查看: 393|回复: 0

[经验分享] python scrapy+Mongodb爬取蜻蜓FM,酷我及懒人听书

[复制链接]

尚未签到

发表于 2015-11-29 09:03:21 | 显示全部楼层 |阅读模式
def get_qt_jmlist(self, response):  jm_json = json.loads(response.body, encoding="utf-8")
  de = response.meta["de"]
  for jm_data in jm_json["data"]:
  if jm_data is None:
  pass
  else:
  try:
  file_path = "http://upod.qingting.fm/%(file_path)s?deviceid=ffffffff-ebbe-fdec-ffff-ffffb1c8b222" % \
  jm_data["mediainfo"]["bitrates_url"][0]
  item = QtscrapyItem()
  # print(item)
  # print(jm_data["id"])
  item["id"] = str(jm_data["id"])
  parent_info = "%(parent_id)s_%(parent_name)s" % de["parent_info"]
  item["parent_info"] = parent_info
  item["title"] = jm_data["title"]
  item["update_time"] = str(jm_data["update_time"])[:str(jm_data["update_time"]).index(' ')]
  item["file_path"] = file_path
  item["source"] = "qingting"
  yield item
  except:
  pass
  pass
  def get_kw_catlist(self, response):
  try:
  kw_json = json.loads(response.body, encoding="utf-8")
  if kw_json["sign"] is not None:
  if kw_json["list"] is not None:
  for data in kw_json["list"]:
  p_id = data["Id"]
  kw_p_url = "http://ts.kuwo.cn/service/getlist.v31.php?act=cat&id=%s&type=hot" % p_id
  yield Request(kw_p_url, callback=self.get_kw_cat)
  except:
  print("*" * 300)
  print(self.name, kw_json)
  pass
  def get_kw_cat(self, response):
  try:
  kw_json = json.loads(response.body, encoding="utf-8")
  p_info = {}
  if kw_json["sign"] is not None:
  if kw_json["list"] is not None:
  for data in kw_json["list"]:
  id = data["Id"]
  p_info["p_id"] = data["Id"]
  p_info["p_name"] = data["Name"]

  kw_pp_url = "http://ts.kuwo.cn/service/getlist.v31.php?act=detail&id=%s" %>  yield Request(kw_pp_url, callback=self.get_kw_jmlist, meta={"p_info": p_info})
  except:
  print("*" * 300)
  print(self.name, kw_json)
  pass
  def get_kw_jmlist(self, response):
  jm_json = json.loads(response.body, encoding="utf-8")
  p_info = response.meta["p_info"]
  for jm_data in jm_json["Chapters"]:
  if jm_data is None:
  pass
  else:
  try:
  file_path = "http://cxcnd.kuwo.cn/tingshu/res/WkdEWF5XS1BB/%s" % jm_data["Path"]
  item = QtscrapyItem()
  item["id"] = str(jm_data["Id"])
  parent_info = "%(p_id)s_%(p_name)s" % p_info
  item["parent_info"] = parent_info
  item["title"] = jm_data["Name"]
  item["update_time"] = ""
  item["file_path"] = file_path
  item["source"] = "kuwo"
  yield item
  except:
  pass
  pass
  def get_lr_booklist(self, response):
  s_lr_json = json.loads(response.body, encoding="utf-8")
  if len(s_lr_json["list"]) > 0:
  for s_lr in s_lr_json["list"]:
  s_lr_url = "http://api.mting.info/yyting/bookclient/ClientGetBookResource.action?bookId=%(id)s&pageNum=1&pageSize=2000&sortType=0&token=_4WfzpCah8ujgJZZzboaUGkJQvWGfEEL-zdukwv7lbY*&imei=ODY1MTY2MDIxNzMzNjI0" % s_lr
  meta = {}
  meta["id"] = s_lr["id"]
  meta["name"] = s_lr["name"]
  yield Request(s_lr_url, callback=self.get_lr_kmlist, meta={"meta": meta})
  def get_lr_kmlist(self, response):
  ss_lr_json = json.loads(response.body, encoding="utf-8")
  parent = response.meta["meta"]
  if len(ss_lr_json["list"]) > 0:
  for ss_lr in ss_lr_json["list"]:
  try:
  item = QtscrapyItem()
  item["id"] = str(ss_lr["id"])
  parent_info = "%(id)s_%(name)s" % parent
  item["parent_info"] = parent_info
  item["title"] = ss_lr["name"]
  item["update_time"] = ""
  item["file_path"] = ss_lr["path"]
  item["source"] = "lr"
  yield item
  except:
  pass

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-144785-1-1.html 上篇帖子: ZMAN的学习笔记之Python篇:命令行解析 下篇帖子: 翻译《Writing Idiomatic Python》(三):变量、字符串、列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表