我希望你能帮助我。我正在尝试抓取一个包含4500个链接的网站,其中包含信息。所以结构是这样的:
第1层(只是不同的类别)
第2层(包含不同主题)
第3层(包含主题信息)
所以我的脚本在一个循环中打开每个类别 - 然后按主题打开主题并从第3层中提取所有信息。但是因为有4500个主题,我有问题,我有时会有一个超时错误,在此之后我必须从头开始尝试(有时在200个主题之后,其他时间在2200个主题之后)。我的问题是我怎么能以正确的方式做到这一点,所以如果崩溃我可以继续下一个崩溃之前的主题,而不是从头开始。我是Ruby和Crawling的新手,非常感谢每一条建议。
谢谢!
答案 0 :(得分:1)
Stack Overflow会定期弹出这类问题。在编写单页刮刀或整个站点蜘蛛时,需要考虑许多事项。
有关详情,请参阅“DRY search every page of a site with nokogiri”和“What are some good Ruby-based web crawlers?”以及“What are the key considerations when creating a web crawler?”。这些内容涵盖了我在写蜘蛛时所做的很多事情。
答案 1 :(得分:0)
您肯定应该拆分解析器例程并同时将临时数据保存到DB中。
我的方法是: