我使用Scrapy来抓取所有页面,但是我当前的代码规则仍然允许我获取不需要的URL,比如除了帖子的主URL之外,还可以获得诸如“http://www.example.com/some-article/comment-page-1”之类的评论链接。我可以在规则中添加什么来排除这些不需要的项目?以下是我当前的代码:
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.item import Item
class MySpider(CrawlSpider):
name = 'crawltest'
allowed_domains = ['example.com']
start_urls = ['http://www.example.com']
rules = [Rule(SgmlLinkExtractor(allow=[r'/\d+']), follow=True), Rule(SgmlLinkExtractor(allow=[r'\d+']), callback='parse_item')]
def parse_item(self, response):
#do something
^{} 有一个名为
deny
的可选参数,仅当allow regex为true且deny regex为false时,此参数才与规则匹配来自docs的示例:
也许您可以检查url是否不包含单词
comment
?在相关问题 更多 >
编程相关推荐