我似乎无法打开论坛 URL(总是将我重定向到另一个网站),所以这是一个尽力而为的建议:
如果线程页面上有指向其他页面的链接,您可以创建爬虫规则以明确跟踪这些链接。为此使用 CrawlSpider:
class GuideSpider(CrawlSpider):
name = "Guide"
allowed_domains = ['www.guides.com']
start_urls = [
"http://www.guides.com/forums/forumdisplay.php?f=108&order=desc&page=1",
]
rules = [
Rule(SgmlLinkExtractor(allow=("forumdisplay.php.*f=108.*page=",), callback='parse_item', follow=True)),
]
def parse_item(self, response):
# Your code
...
蜘蛛应该自动对请求进行重复数据删除,即即使有两个页面链接到它,它也不会重复相同的 URL。如果页面上有非常相似的 URL,只有一个或两个查询参数不同(例如,order=asc
),您可以deny=(...)
在 Rule 构造函数中指定以将它们过滤掉。