首页 > 解决方案 > 执行许多获取请求

问题描述

我正在编写一个 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)

标签: python-3.xweb-scrapingbeautifulsouppython-requests

解决方案


我能想到的几个选择...

1) 有没有办法获取这些图片 URL 的列表?例如,站点地图或包含大量此类站点的页面。这将是首选方式,因为通过使用该列表,您只能抓取您知道存在的内容。根据您的问题,我认为这不太可能,但是如果您有一个 URL,是否没有办法向后工作并找到更多?

2) 图像命名是否有规律?字母可能是随机的,但数字可能会逐渐增加。例如AA0001,并且可能存在,但前缀AA0002可能没有其他图像?AA

3) 负责任的抓取 - 如果该结构中的命名确实是随机的,并且您别无选择,只能尝试所有 URL 直到您获得成功,请负责任地这样做。尊重 robots.txt 并限制请求的速率。


推荐阅读