python-3.x - 执行许多获取请求
问题描述
我正在编写一个 python 程序,它使用 beautifulsoup 从网站上抓取图像链接,然后对图像进行分类。该网站以给定的 url 格式将他们的图像放在单独的页面上: (website.com/(az)(az)(0-9)(0-9)(0-9)(0-9) 这意味着数字的 url 可能性非常高(+100 万)。我担心如果我多次向该站点发出 get 请求,它可能会损害该站点或使我处于法律危险中。我怎样才能抓取最多的 url在不损坏网站或让自己陷入法律麻烦的情况下?如果你们想要更多信息,请告诉我。谢谢!
PS如果有帮助,我在下面留下了我的代码所做的伪代码。
PSS 抱歉,如果格式奇怪或混乱,我是从手机发帖的
For url in urlPossibilities:
Request.get(url)
UrlLink = FindImgLink(url)
Categorize(urlLink)
解决方案
我能想到的几个选择...
1) 有没有办法获取这些图片 URL 的列表?例如,站点地图或包含大量此类站点的页面。这将是首选方式,因为通过使用该列表,您只能抓取您知道存在的内容。根据您的问题,我认为这不太可能,但是如果您有一个 URL,是否没有办法向后工作并找到更多?
2) 图像命名是否有规律?字母可能是随机的,但数字可能会逐渐增加。例如AA0001
,并且可能存在,但前缀AA0002
可能没有其他图像?AA
3) 负责任的抓取 - 如果该结构中的命名确实是随机的,并且您别无选择,只能尝试所有 URL 直到您获得成功,请负责任地这样做。尊重 robots.txt 并限制请求的速率。
推荐阅读
- python - 小部件在 Jupyter 笔记本中不起作用
- python - 如何创建在 Python 中动态更新的列表属性?
- c# - 通过 API 获取 Azure AD Connect 同步状态
- c# - 如何将 FindByValue 与一系列数字一起使用
- python - 在对其进行一些分析后从原始数据框中提取信息
- python - 如何为pytest中的每次测试运行创建新的日志文件?
- java - 缺少 linkTo 和 methodOn 声明 Spring HATEOAS STS
- bash - 将文件内容复制到自身的命令行或 bash 方法
- php - Google Cloud Vm 实例不允许我使用 gsuite 帐户通过 phpmailer 发送电子邮件
- python-3.x - 新手试图在类外的另一个函数中使用从类派生的变量