Python 如何在使用Scrapy进行抓取时忽略pdf链接?
我是Scrapy的新手,目前正在制作一个蜘蛛,它只从网站上提取事件标题和事件描述。我能够获得标题和描述,但是,爬行器也试图从pdf链接中提取数据,这会导致“raisenotsupported(“响应内容不是文本”)”错误。我怎样才能防止蜘蛛这样做 这是我的密码: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
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规则添加拒绝扩展,以下是引用()