셀렌과 파이어 폭스 웹 드라이버를 사용하여 프로그램을 작성했습니다.파이썬과 셀레늄 : 파이어 폭스는 기본 설정을 지정해도 다운로드 할 때 대화 상자를 계속 만듭니다.
def dowloadFile(link):
profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2) # custom location
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', '/tmp')
profile.set_preference('browser.helperApps.neverAsk.saveToDisk',
'application/pdf')
driver = webdriver.Firefox(profile)
#driver.set_window_position(-10000,0)
driver.get(link)
s = BeautifulSoup(driver.page_source, "html.parser")
st=s.find('div',{"class":"bloc-docs-link bloc-250"})
#print("hadiii ST: "+str(st))
x=st.find('a')
fm=x.get('href')
fm="https://www.marchespublics.gov.ma/"+fm
driver.get(fm)
driver.quit()
my 함수는 매개 변수로 링크를 취한 후 해당 링크를 가져오고 마지막으로 파일을 다운로드하는 다른 링크를 찾습니다. 내 파이어 폭스의 환경 설정을 지정해도 내 문제는 다운로드 할 때 항상 대화 상자를 계속 표시하여 저장할지 여부를 확인하는 것입니다. 나는이 대화 상자없이 파일을 다운로드 할 수 있도록 무엇을해야할지 모른다.
도움주세요. 미리 감사드립니다.
답변 해 주셔서 감사합니다. 제 경우에는 파일 다운로드를위한 파일 톤이 있습니다. 그래서 프로그램은 확실히 느려질 것입니다. 내가 아는 것 : profile.set_preference ('browser.helperApps.neverAsk.saveToDi sk', 'application/pdf')는 브라우저가 대화 상자를 표시하지 않도록 할 책임이 있습니다. 왜 작동하지 않는지 모르겠다. – Elroum
내가 기억하는 것으로부터, 셀레늄은 그런 버그로 가득 차 있습니다.또한 파이어 폭스는 우리와 같은 사람들에게 '웹 스크래퍼'라는 용어를 사용하여 사람들을 어렵게 만들었습니다. 나는 결코 파이어 폭스를 사용하지 않는다. 개인적으로 Chrome 브라우저가 내가 시도한 것 중에서 최고라고 생각합니다. –
오, 마지막으로 한 가지 (5 분이 지났기 때문에 첫 번째 댓글을 수정할 수 없습니까?이 규칙은 맞습니까?) 나는 빗나간다, 이것은 잡초에 길을 넣고 있을지 모르지만 나는 asyncio/coroutines/script의 일부로 try를 쓰는 것을 사용한다. 그것들은 파이썬을 유명하게 만드는 중요한 부분입니다. 여기에 나 혼자 있기 전에 Luciano Ramalho가 "Fluent Python"을 확인하는 것이 좋습니다. Github에서 무료. 당신은 당신이 행복해 할 것입니다. 저자 루치아노 (Louiano)는 코 루틴을 매우 잘 다루므로 처음에는 생략 할 수 있습니다. –