2017-02-19 3 views
0
from mechanize import Browser 
from bs4 import BeautifulSoup as BS 

br = Browser() 

# Browser options 
# Ignore robots.txt. Do not do this without thought and consideration. 
br.set_handle_robots(False) 

# Don't add Referer (sic) header 
br.set_handle_referer(False) 

# Don't handle Refresh redirections 
br.set_handle_refresh(False) 

#Setting the user agent as firefox 
br.addheaders = [('User-agent', 'Firefox')] 

br.open('http://pict.ethdigitalcampus.com') 
br.select_form(name="loginForm") 
br['loginid'] = "username" 
br['password']="password" 
br.hiddenfield="310a7b2cd0e52dd19c9bbe4c78f1eb6778af88a67a5990969273711054584e037c3bee2f22ea5ebfe7cb6b3d151f54b87c0b232f5424fb54ebdf64f590e9e913" 
br.submit() 

#Getting the response in beautifulsoup 
soup = BS(br.response().read(),"html.parser") 

for product in soup.find_all('td', class_="MTTD1"): 

    #printing product name and url 
    print "Product Name : " + product.a.text 
    #print "Product Url : " + product.a["href"] 
    print "=======================" 

Ich habe versucht, Anmeldung auf der oben genannten Website mit Python Mechanize.
Aber es gibt den folgenden Fehler.Kann nicht mit mechanize anmelden

" ValueError: unknown POST form encoding type 'multipart/form-data;charset=utf-8' "

+0

Wenn Sie keine sinnvolle Antwort auf Ihre Frage erhalten, sollten Sie in Erwägung ziehen, zu Selen zu wechseln. (Sie wissen vielleicht nicht darüber?) Im Gegensatz zu Mechanize, die zuletzt im Jahr 2011 hochgeladen wurde, wird dieses Produkt aktiv entwickelt und viele Menschen nutzen es. Es ist auch ganz einfach, damit anzufangen. Siehe http://selenium-python.readthedocs.io/index.html. –

+0

Danke, @BillBell versuchte das gleiche mit Selen auch, funktionierte ziemlich gut :) –

+0

Sie sind herzlich willkommen. –

Antwort

0

Anfragen am Ende mit. Es stellte sich heraus, dass ich nicht alle Details übermittelte, die der Endpunkt erwartet. Bei zukünftigen Verweisen sollten Sie alle Formular-Parameter übergeben, die der Endpunkt erwartet, wenn Sie Formulare mit POST senden möchten. Diese Parameter haben einen Attributnamen in ihren Tags oder Sie können auch Strg + Umschalt + I verwenden und nach den Formularparametern im Bereich Netzwerk suchen.

Verwandte Themen