热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python搜寻蓝牙_使用Python搜寻高质量ROM的网站

python搜寻蓝牙假设您要从网站下载所有高质量的SuperNintendoROM。该站点仅具有将您带到文件本身的链接列表。由于这是一棵扁平树,因此可以使用URLal

python 搜寻蓝牙

假设您要从网站下载所有高质量的Super Nintendo ROM。 该站点仅具有将您带到文件本身的链接列表。 由于这是一棵扁平树,因此可以使用URL ala运行基本的wget命令:

wget -m -np -c -w 3 -R"index.html*" "https://rom-site.blah/path/to/roms/"

但是,这将为您提供每场比赛,无论质量如何。 幸运的是,ROM发烧友使用后缀来表示rom的状态:

[a] Alternate
[p] Pirate
[b] Bad Dump (avoid these, they may not work!)
[t] Trained
[f] Fixed
[T-] OldTranslation
[T+] NewerTranslation
[h] Hack
(-) Unknown Year
[o] Overdump
[!] Verified Good Dump
(M#) Multilanguage (# of Languages)
( ###) Checksum
(??k) ROM Size
ZZZ_ Unclassified
(Unl) Unlicensed

因此,我们只想要带有[!]后缀的代码。 您可能还希望 仅针对美国发行版 指定 [U]

当然可以使用正则表达式将其指定为wget ,但是我绝对不是wget或regex pro,因此,在尝试了几分钟后,我放弃并编写了一个简短的Python脚本来获取想要使用的内容美丽的汤

在编写任何代码之前,我分析了目标URL的来源,并且
可以肯定的是,该页面几乎只是一个锚定标记列表,
直接链接到ROM文件。 完善。

窥视html ,我知道我只需要从所有锚点中提取链接,但只收集包含[!]后缀的链接即可。 这可以在不到15行的Python中完成:

首先,安装beautifulsoup4:

pip3 install beautfilsoup4

然后使用以下代码创建一个名为good_roms.py的文件:

# good_roms.py
import requests
from bs4 import BeautifulSoupweburl = 'https://site.site/path/to/roms/'
data = requests.get(weburl)
soup = BeautifulSoup(data.text, features= 'html.parser' )links = []
for anch in soup.find_all( 'a' ):if '[!]' in str(anch):links.append(weburl + anch.get( 'href' ))for link in links:print(link)

现在,我可以运行程序并将输出重定向到文本文件:

python3 good_roms.py > rom-list.txt

现在,我有了一个包含所有好的ROM的URL的文本文件,我可以将该文件直接提供给wget ,它将使用-i输入文件开关仅下载好的文件:

wget -i rom-list.txt

而已! 确保您有足够的空间容纳所有rom,并观看它们一次堆积一堆:

--2019-01-25 21:27:02-- https://rom-site.blah/path/to/roms/YourFavoriteRom[!].bin
Reusing existing connection to [rom-site.blah]:443.
HTTP request sent, awaiting response... 200 OK
Length: 2097152 (2.0M) [application/octet-stream]
Saving to: ‘YourFavoriteRom[!].bin’YourFavoriteRom[!].bin 100%[========================>] 2.00M 513KB/sin 3.9s 2019-01-25 21:27:09 (513 KB/s) - ‘YourFavoriteRom[!].bin’ saved [2097152/2097152]FINISHED --2019-01-25 21:29:41--
Total wall clock time: 38m 47s
Downloaded: 693 files, 888M in 30m 38s (495 KB/s)

翻译自: https://hackernoon.com/scraping-a-website-for-high-quality-roms-using-python-2x21t28ey

python 搜寻蓝牙



推荐阅读
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了如何通过conda安装Selenium的wheel文件,包括查看环境、卸载旧版本、下载新版本的wheel文件以及安装操作的步骤。同时提供了使用清华源的方法。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • modulepaddle.fluidhasnoattributedata解决:pipinstallpaddlepaddle-gpu1.7.0.post107-ih ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
author-avatar
可乐加芬达61158
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有