Webscraping: загрузка PDF из ссылки JavaScript - PullRequest
0 голосов
/ 12 сентября 2018

Я использую библиотеку requests в python и пытаюсь почистить веб-сайт, на котором есть множество открытых отчетов и документов в формате .pdf.Я успешно сделал это на других сайтах, но наткнулся на эту загадку: ссылки - это javascript функции (объекты? Я ничего не знаю о javascript), которые перенаправляют меня на другую страницу, которая затем имеет сыройPDF ссылка.Примерно так:

import requests
from bs4 import BeautifulSoup as bs

url = 'page with search results.com'
html = requests.get(url).text
soup = bs(html)
obj_list = soup.findAll('a')
for a in obj_list: 
    link = a['href']
    print(link)

>> javascript:readfile2("F","2201","2017_2201_20170622F14.pdf")

В идеале я бы хотел найти способ перехода по этому адресу.Я мог бы использовать selenium и нажимать на ссылки, но документов много, и это требовало бы много времени и ресурсов.Есть ли способ сделать это с помощью requests или подобной библиотеки?

Редактировать: Похоже, что каждая ссылка идет на один и тот же URL, который загружает другой PDF-файл в зависимости от того, какую ссылку вы щелкнули.Это заставляет меня думать, что нет способа сделать это в requests, но я все еще надеюсь на что-то не основанное на селене.

1 Ответ

0 голосов
/ 12 сентября 2018

Может быть URL-адрес по умолчанию, в котором присутствуют эти файлы PDF.

Вам необходимо узнать URL, по которому открываются эти pdf файлы после нажатия на гиперссылку.

Как только вы получите этот URL, вам нужно проанализировать имя pdf из текста привязки.

После этого вы добавляете имя pdf с помощью URL (на котором присутствует pdf). И запросите окончательный URL.

...