2016-11-29 1 views
0

Сайт: http://mbct.com/wp-content/uploads/Eisendrath-Jan-2016.pdfКак скачать файл в формате PDF с помощью selenium python webdriver?

Ошибка: не удалось найти элемент

Может быть, это потому, что значок загрузки исчезнет, ​​когда я не делаю что-то?

Это мой код:

# coding=utf-8 
from selenium import webdriver 
from selenium.webdriver.common.action_chains import ActionChains 
from selenium.webdriver.common.keys import Keys 
import time 
import os 
site = 'http://mbct.com/wp-content/uploads/Eisendrath-Jan-2016.pdf' 
br = webdriver.Chrome() 
br.get(site) 
br.find_element_by_xpath('//*[@id="icon"]').click() 
+0

Кажется, вы пытаетесь найти элемент XML в PDF-файле. PDF, в отличие от HTML, не перекрывается с XML. Значок загрузки, отображаемый при посещении PDF-файла в браузере, не является частью веб-страницы. –

+0

Если ваша цель, как кажется, скачать PDF-файл ... вы можете сделать это, просто загрузив URL-адрес любым удобным вам способом - вам не нужно использовать webdriver (или любой Python вообще) для этого , просто загрузите его с помощью curl в сценарий оболочки. Если вы хотите использовать Python по любой причине, это может сделать «urllib.request» (Python 3) или «urllib2» (Python 2). –

ответ

0

Переданы от комментариев ответить:

Похоже, вы пытаетесь найти XML-элемент в формате PDF. PDF, в отличие от HTML, не перекрывается с XML, так что это не сработает.

Значок загрузки, который отображается, если вы посещаете PDF-файл в своем браузере, не является частью веб-страницы, поэтому даже если PDF-документ был XML, это не сработает. Кроме того, есть приличный шанс, что есть более одного значка, и в этом случае вы, вероятно, будете нажимать на неправильную вещь, и это может быть нецелесообразно (если вы использовали это для некоторых не-PDF-файлов с кнопкой загрузки на фактическая веб-страница).

Чтобы загрузить PDF-файл с веб-сайта ... вам не нужно использовать webdriver (или любой Python вообще). Просто загрузите его с помощью curl в сценарий оболочки, если вы находитесь в UNIX. Вероятно, есть простой эквивалент Windows, но я этого не знаю. Если вы хотите использовать Python по любой причине, urllib.request (Python 3) или urllib2 (Python 2) могут это сделать.

Или, если это действительно тот веб-сайт, вам не нужно запускать автоматическую программу вообще - просто щелкните правой кнопкой мыши ссылку и выберите «Сохранить ссылку как ...» или ее эквивалент в большинстве браузеров.