发 帖  
原厂入驻New

[经验] 请问如何使用Python搜寻高质量ROM的网站?

2020-9-3 18:27:20  115 python
分享
0
  现实生活,或者工作当中。我们需要一些高质量的ROM网站。那么我们如何使用Python搜寻高质量ROM的网站?www.zpedu.com/it/rjyf/12610.html比方说,假设你想从网站上下载的所有高品质的超级天堂ROM的。该站点仅有将您带到文件本身的链接列表。由于这是一棵扁平树,因此可以使用URLala运行基本的wget命令
  1.   wget-m-np-c-w3-R"index.html*"
复制代码

  但是,这将为您提供所有游戏,而不论其质量如何。幸运的是,ROM发烧友使用后缀来表示rom的状态:
  1. <p>  [a]Alternate</p>
  2. <p>  [p]Pirate</p>
  3. <p>  [b]BadDump(avoidthese,theymaynotwork!)</p>
  4. <p>  [t]Trained</p>
  5. <p>  [f]Fixed</p>
  6. <p>  [T-]OldTranslation</p>
  7. <p>  [T+]NewerTranslation</p>
  8. <p>  [h]Hack</p>
  9. <p>  (-)UnknownYear</p>
  10. <p>  [o]Overdump</p>
  11. <p>  [!]VerifiedGoodDump</p>
  12. <p>  (M#)Multilanguage(#ofLanguages)</p>
  13. <p>  (###)Checksum</p>
  14. <p>  (??k)ROMSize</p>
  15. <p>  ZZZ_Unclassified</p>
  16. <p>  (Unl)Unlicensed</p>
复制代码

  因此,我们只想要带有[!]后缀的代码。您可能还希望仅针对美国发行版指定[U]。
  当然有某种方法可以指定wget带有正则表达式,但我绝对不是wget或正则表达式专业版,因此在尝试了几分钟后,我放弃了,并编写了一个简短的Python脚本来获得我想要的使用BeautifulSoup的内容。
  在编写任何代码之前,我分析了目标URL的来源,并且可以肯定的是,该页面几乎只是锚标记的列表,并且直接链接到ROM文件完善。
  偷看之后html,我知道我只需要从所有锚点中提取链接,但是只收集包含[!]后缀的链接。这可以在不到15行的Python中完成:
  首先,安装beautifulsoup4:
  1.   pip3installbeautfilsoup4
复制代码

  然后创建一个名为good_roms.py使用以下代码:
  1. <p>  #good_roms.py</p>
  2. <p>  importrequests</p>
  3. <p>  frombs4importBeautifulSoup</p>
  4. <p>  data=requests.get(weburl)</p>
  5. <p>  soup=BeautifulSoup(data.text,features='html.parser')</p>
  6. <p>  links=[]</p>
  7. <p>  foranchinsoup.find_all('a'):</p>
  8. <p>  if'[!]'instr(anch):</p>
  9. <p>  links.append(weburl+anch.get('href'))</p>
  10. <p>  forlinkinlinks:</p>
  11. <p>  print(link)</p>
复制代码

  现在,我可以运行程序并将输出重定向到文本文件:
  1.   python3good_roms.py>rom-list.txt
复制代码

  现在,我有了一个文本文件,其中包含所有好的ROM的URL,我可以将该文件直接提供给wget它将使用-i输入文件切换:
  1.   wget-irom-list.txt
复制代码

  确保您有足够的空间容纳所有rom,并观看它们一次堆积一堆:
  1. <p>  --2019-01-2521:27:02--</p>
  2. <p>  Reusingexistingconnectionto[rom-site.blah]:443.</p>
  3. <p>  HTTPrequestsent,awaitingresponse...200OK</p>
  4. <p>  Length:2097152(2.0M)[application/octet-stream]</p>
  5. <p>  Savingto:‘YouRFavoriteRom[!].bin’</p>
  6. <p>  YourFavoriteRom[!].bin100%[========================>]2.00M513KB/sin3.9s</p>
  7. <p>  2019-01-2521:27:09(513KB/s)-‘YourFavoriteRom[!].bin’saved[2097152/2097152]</p>
  8. <p>  FINISHED--2019-01-2521:29:41--</p>
  9. <p>  Totalwallclocktime:38m47s</p>
  10. <p>  Downloaded:693files,888Min30m38s(495KB/s)</p>
复制代码

  以上就是关于如何使用Python搜寻高质量ROM的网站的全部内容,想了解更多关于Python的信息,请继续关注我们。

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发经验
关闭

站长推荐 上一条 /9 下一条

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