这可能不是说出这个问题的正确方法,但有一种快速的方法来获取具有格式的网站的网址。我的意思是让URL说格式为www.example.com/stuff/number=0123456789
,其末尾的数字总是10位数。
现在我正在使用scrapy来浏览从0000000000
到9999999999
的每种网址格式,这是100亿种不同的组合,以查看是否有网页。虽然我正在运行多个实例,并且速度非常快,但它仍然需要永远,并且必须有更好的方法来实现它。有什么建议吗?
答案 0 :(得分:1)
Scrapy
本身非常快,可配置且可扩展。我会坚持下去,尝试优化当前的方法并进行扩展。例如:
HEAD
requests代替GET
(另见this thread)scrapyd
instances。您还可以使用scrapy-redis
之类的库来保持网址队列以检查和删除项目(如果有的话)但是,请务必保持合法的一面,不要违反网站的使用条款。
作为旁注和解决混淆,BeautifulSoup
是一个HTML解析器,它擅长它的功能。它本身不能发出HTTP请求。它需要传入HTML。
另一方面,一般来说,获取所有10位数组合并检查是否存在与数字对应的网页听起来不太合适。如果您想详细说明问题背后的动机,我们可以提出更多选择或替代方法。