2013-08-07 4 views
0

이 내가 자동화 해주는해야 할 단계입니다)파이썬을 사용하여 웹 사이트에 로그인하고 웹 사이트에서 작업을 수행하려면 어떻게해야합니까?

2

1) 로그인 드롭 다운 메뉴에서 옵션을 선택합니다 (제품 목록)

3)에 뭔가를 검색을 액세서하려면 검색 필드 (우리가 찾고있는 제품)

4) 제품의 옵션을 열려면 (링크를 클릭)

5) 다른 링크를 클릭 (모든 .PDF는 말했다 제품 관련 파일을 컴파일하려면 대담한 사람 R .PDF)

6) (.로드하고 다음을 다운로드하는 .PDF 대기 내가 알고 원하는 파일 이름으로 제품)

의 이름으로 내 컴퓨터에 .PDF를 저장 이것은 가능하다. 그렇다면 어떻게해야할까요?

+0

당신이 CSS 선택기를 이해하는 경우 다른 사용자가 ID 또는 XPath는 또는 다른 것들에 의해 요소를 찾을 수 있습니다 .... https://www.google.com/search?q=python+to+log+into+website&client=ubuntu&channel=cs&aq=f&oq=python+to+log+into+website&aqs=chrome.0.57j62l3.3901&sourceid=chrome&ie=UTF -8 – dm03514

+0

지금까지 시도한 것을 공유하십시오. – Ani

답변

1

실제 클릭이 관련되어 중대한 역할을합니까? PDF를 다운로드하려는 경우 요청 라이브러리를 사용하는 것이 좋습니다. Scrapy 사용을 고려할 수도 있습니다.

사이트에서 검색 할 때 Fiddler를 사용하여 HTTP POST 요청을 캡처 한 다음 Python에서이를 복제 할 수 있습니다.

다음은 시작 지점으로 유용한 코드입니다.이 기능은 서버에 로그인하여 대상 파일을 다운로드합니다. 이 동적 웹 사이트에서 작동하지 않습니다 따라서 자바 스크립트를 실행하지 않습니다를 제외하고 -

def login(): 
    login_url = 'http://www.example.com' 
    payload = 'usr=username&pwd=password' 
    connection = requests.Session() 
    post_login = connection.post(data=payload, 
     url=login_url, 
     headers=main_headers, 
     proxies=proxies, 
     allow_redirects=True) 

def download(): 
    directory = "C:\\example\\" 
    url = "http://example.com/download.pdf" 
    filename = directory + '\\' + url[url.rfind("/")+1:] 
    r = connection.get(url=url, 
         headers=main_headers, 
         proxies=proxies) 
    file_size = int(r.headers["Content-Length"]) 
    block_size = 1024 
    mode = 'wb' 
    print "\tDownloading: %s [%sKB]" % (filename, int(file_size/1024)) 
    if r.status_code == 200: 
     with open(filename, mode) as f: 
      for chunk in r.iter_content(block_size): 
       f.write(chunk) 
1

정적 사이트의 당신은 당신이 원하는 모든 것을 수행, PyPi에서 사용할 수있는 mechanize 모듈을 사용할 수 있습니다. 또한 엄격하게 파이썬 2이다.

외부 브라우저를 제어하는 ​​셀레늄 (install instructions)에 대한 파이썬 바인딩을 사용해야 할 수도 있습니다 방법은 더 복잡한 무언가를
easy_install mechanize 

; 또는 웹 브라우저가 내장 된 spynner을 사용하십시오. 그러나이 2는 설정하는 것이 훨씬 어렵습니다.

0

물론, 그냥, 방문 페이지를 통해 당신을 얻을 것이다

from selenium import webdriver 
browser = webdriver.Chrome() 

browser.get('http://your-website.com') 
search_box = browser.find_element_by_css_selector('input[id=search]') 

search_box.send_keys('my search term') 
browser.find_element_by_css_selector('input[type=submit']).click() 

가 검색어를 입력 webdriver 셀레늄을 사용하여 문제의 검색 단계를 클릭합니다. 나머지는 API를 통해 읽으십시오.

Mechanize에는 자바 스크립트를 통해 많은 웹 페이지가 생성되기 때문에 현재로서는 문제가 있습니다. 그리고 만약 당신이 페이지를 많이 할 수 없다는 것을 렌더링하지 않습니다. 당신은 파이썬 API를 제공 셀레늄 같은 webdriver을 사용할 수

관련 문제