当前位置:   article > 正文

网页源代码批量提取下载链接字符串-非正则 | Python3_批量下载源代码中的链接

批量下载源代码中的链接

代码改编自水似冰的博客 | https://blog.csdn.net/qq_30650153/article/details/77773189 

感谢启发

本脚本以 http://www.hao6v.com/mj/2017-04-27/28999.html 页面的源代码为对象
以 ed2k、thunder、magnet 三类下载链接为提取对象编写
无法确定个别影视剧下载网站源代码是否可以提取

代码思想为通过下载链接头尾部的特定格式字符识别并存入新的文件,并非使用正则表达式,编程新手,欢迎各位朋友交流

  1. # encoding=utf-8
  2. sc_txt = open('source_code.txt', 'r') # 打开存有网页源代码的 source_code.txt 文件(需提前将源代码存入此文件)
  3. sc_list = list(sc_txt.read()) # 源代码文件内容以每个字符为一项组成列表 sc_list
  4. dl_list = [] # 创建空列表 dl_list 准备存入下载链接
  5. # 在整个 sc_list 字符串里以开头结尾的固定字符查找下载链接然后写入 dl_list 中
  6. # 开头固定字符为'<a href="',这里取'f'、'='、'"'三个连续字符作为开头查找格式
  7. # 在'f'、'='、'"'三个连续字符后,从 sc_list[3] 即第四位(前三位为开头格式字符)开始提取
  8. # 并且只提取 'e'(ed2k)、 'm'(magnet)、 't'(thunder) 三类最常见下载链接
  9. # 在500位内(下载链接长度一般为300字符以下)查找末尾格式字符
  10. # ed2k、thunder 链接在'"'处结束,磁力链接('magnet')在'&'处结束
  11. for i in range(len(sc_list)):
  12. if sc_list[i] == 'f' and sc_list[i + 1] == '=' and sc_list[i + 2] == '"':
  13. if sc_list[i + 3] == 'e' or sc_list[i + 3] == 't' or sc_list[i + 3] == 'm':
  14. for j in range(3,500):
  15. if sc_list[i + j] == '"' or sc_list[i + j] == '&':
  16. dl_list.append('\n') # 本条下载链接提取结束,换行
  17. j = 0 # 将 j 置 0 准备查找下一条下载链接
  18. break
  19. dl_list.append(sc_list[i + j]) # 在没遇到结束字符时将各字符(也就是本条下载链接的内容)存入 dl_list 中
  20. dl_txt = open('download_link.txt', 'w') # 打开(创建)文件 download_link.txt
  21. dl_txt.write(''.join(dl_list)) # 将内容为下载链接的列表通过空字符连接为字符串,并写入 download_link.txt
  22. sc_txt.close() # 关闭 source_code.txt
  23. dl_txt.close() # 关闭 download_link.txt

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/515434
推荐阅读
相关标签
  

闽ICP备14008679号