У меня есть сканер сканирования, который сканирует данный сайт до определенного отдела и загружает файлы PDF на этом сайте. Все работает нормально, но вместе со ссылкой в формате PDF мне также нужен текст внутри тега привязки.
например:
<a href='../some/pdf/url/pdfname.pdf'>Project Report</a>
рассмотрите этот якорный тег, в обратном вызове я получаю объект ответа, и наряду с этим объектом мне нужен текст внутри этого тега, например, «Отчет по проекту».
Есть ли способ получить эту информацию вместе с объектом ответа. Я прошел через https://docs.scrapy.org/en/latest/topics/selectors.html ссылку, но это не то, что я ищу.
пример кода:
class DocumunetPipeline(scrapy.Item):
document_url = scrapy.Field()
name = scrapy.Field() # name of pdf/doc file
depth = scrapy.Field()
class MySpider(CrawlSpider):
name = 'pdf'
start_urls = ['http://www.someurl.com']
allowed_domains = ['someurl.com']
rules = (
Rule(LinkExtractor(tags="a", deny_extensions=[]),
callback='parse_document', follow=True),
)
def parse_document(self, response):
content_type = (response.headers
.get('Content-Type', None)
.decode("utf-8"))
url = response.url
if content_type == "application/pdf":
name = response.headers.get('Content-Disposition', None)
document = DocumunetPipeline()
document['document_url'] = url
document['name'] = name
document['depth'] = response.meta.get('depth', None)
yield document