Я новичок в области терапии и python, поэтому, пожалуйста, имейте это в виду:)
Я занимаюсь исследованием, и мне нужно загрузить множество общедоступных документов в формате PDF с правительственного веб-сайта. Проблема в том, что существует около 11 000 страниц результатов поиска, каждая с 10 PDFS.
То, что я хотел бы сделать, это написать скрипт с использованием scrapy, который:
1) передает предварительно определенные параметры поиска в поисковую систему документов на сайте сайта (например, ключевое слово, название компании, date from, date to et c) 2) Запускает поисковый запрос и получает результаты. 3) Автоматически загружает ВСЕ PDF-файлы, отображаемые в результате запроса (а не только первую страницу результатов), которые соответствуют моему определенному. параметры на мою машину / загружает их на диск Google
Есть ли какие-либо указатели на то, что я могу использовать? Я не нашел ничего, что могло бы это сделать - любая помощь была бы очень признательна, это очень хорошее дело!
Вот где я до сих пор:
import scrapy
from scrapy.http import Request
class fos(scrapy.Spider):
name = "XXX"
allowed_domains = ["XXX"]
start_urls = ["XXX"]
def parse(self, response):
for href in response.css('div#all_results h3 a::attr(href)').extract():
yield Request(
url=response.urljoin(href),
callback=self.parse_article
)
def parse_article(self, response):
for href in response.css('div.download_wrapper a[href$=".pdf"]::attr(href)').extract():
yield Request(
url=response.urljoin(href),
callback=self.save_pdf
)
def save_pdf(self, response):
path = response.url.split('/')[-1]
self.logger.info('Saving PDF %s', path)
with open(path, 'wb') as f:
f.write(response.body)