2016-06-29 15 views
1

Ich versuche, einen Link in einem Python-Skript zu öffnen.Session.get öffnet nicht die richtige Seite?

https://www.amazon.com/Best-Sellers-Automotive-Transmission-Fluid-Additives/zgbs/automotive/15718891/ref=zg_bs_nav_auto_4_15718881#2

, die, wenn ich in meinem Browser kopieren zeigt die rechte Seite. Allerdings, wenn ich den Link mit Python öffnen es geht nur um zu

https://www.amazon.com/Best-Sellers-Automotive-Transmission-Fluid-Additives/zgbs/automotive/15718891/ref=zg_bs_nav_auto_4_15718881

Ich habe versucht, Sitzungen mit ein paar verschiedenen Headern und ich habe auch versucht, requests.get verwenden. Benutze ich nur die falschen Header? Ich habe mir den Quellcode angesehen und es gibt eine Ajax-URL zusätzlich zu einem href, wenn Sie auf die Schaltfläche klicken, um von der ersten Seite auf die zweite Seite zu wechseln, also dachte ich, dass ich dort vielleicht falsch liege?

Code:

group_link = 'https://www.amazon.com/Best-Sellers-Automotive-Transmission-Fluid-Additives/zgbs/automotive/15718891/ref=zg_bs_nav_auto_4_15718881' 

session.headers.update({'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36', 
'Accept':'text/html,application/json, text/javascript, application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 
'Accept-Language':'en-US,en;q=0.8,es;q=0.6'}) 

link_2 = str(group_link) + "#2" 
page_2 = session.get(link_2) 
soup_2 = BeautifulSoup(page_2.text) 

Antwort

0

Sie müssen bestimmte params passieren als der Inhalt mit einem Ajax-Request abgerufen wird:

params = {"_encoding": "UTF8", 
      "pg": "2", 
      "ajax": "1"} 

url = "http://rads.stackoverflow.com/amzn/click/15718891" 

r = requests.get(url, params=params) 
print(r.text) 

Sobald Sie tun, dass Sie werden sehen, Sie die richtige Quelle erhalten ist zurückgekommen. Alles, was Sie brauchen, ist Best-Sellers-Automotive-Transmission-Fluid-Additives/zgbs/automotive/15718891 mit der Basis Amazon URL. Es wird nicht korrekt angezeigt, weil this, wenn Sie auf Bearbeiten klicken, können Sie die richtige URL

sehen