Python 如何在使用Scrapy进行抓取时忽略pdf链接?

Python 如何在使用Scrapy进行抓取时忽略pdf链接?,python,scrapy,scrapy-spider,Python,Scrapy,Scrapy Spider,我是Scrapy的新手,目前正在制作一个蜘蛛,它只从网站上提取事件标题和事件描述。我能够获得标题和描述,但是,爬行器也试图从pdf链接中提取数据,这会导致“raisenotsupported(“响应内容不是文本”)”错误。我怎样才能防止蜘蛛这样做 这是我的密码: import scrapy from scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpider, Rule class Even

我是Scrapy的新手,目前正在制作一个蜘蛛,它只从网站上提取事件标题和事件描述。我能够获得标题和描述,但是,爬行器也试图从pdf链接中提取数据,这会导致“raisenotsupported(“响应内容不是文本”)”错误。我怎样才能防止蜘蛛这样做

这是我的密码:

import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule

class EventsspiderSpider(CrawlSpider):
    name = 'eventsspider'
    allowed_domains =['cs.acadiau.ca']
    start_urls = ['https://cs.acadiau.ca/news-events/event-reader/using-dna-to-reverse-engineer-your-family-tree.html']

    rules = (
        Rule(LinkExtractor(allow=('news-events/event-reader/using-dna-to-reverse-engineer-your-family-tree.html', )), callback='parse_item', follow=True),)

    def parse_item(self, response):
        i = {}

        title_list = response.xpath('//*[@id="event-items-15421"]/div[2]/div/h1/text()').extract()
        data_list = response.xpath('//*[@id="event-items-15421"]/div[2]/div/div[1]/p[7]/span/text()').extract()

        for x in range(0, len(title_list)):
            i['title'] = title_list[x]
            i['data'] = data_list[x]
            yield i

@删减当你说主程序时,你是指my pipelines.py文件吗?你需要修改规则来更改所遵循的链接。但是看起来你只是在抓取一个链接(而且你的规则很奇怪),那么你为什么要使用
CrawlSpider
?@Prune一个spider类就是你所需要的
scrapy runspider filename.py
是运行它的一种可能方式。@在我使用命令
scrapy crawl spidername
执行代码并在我的终端中查看其输出时进行修剪。根据scrapy文档,.pdf默认情况下被排除,()您还可以尝试显式地向linkextractor规则添加拒绝扩展,以下是引用()