2016-05-10 9 views
0

Ich versuche zur Verfügung Schuhgröße zu erhalten (unter $ (‚option.addedOption‘)) von http://www.neimanmarcus.com/Stuart-Weitzman-Reserve-Suede-Over-the-Knee-Boot-Black/prod179890262/p.prodWarten auf das Laden der Seite?

ich unten Code versucht, aber es kehrte immer vor der Größe bekommt ist.

# config.url = 'http://www.neimanmarcus.com/Stuart-Weitzman-Reserve-Suede-Over-the-Knee-Boot-Black/prod179890262/p.prod' 
import urllib2 
import requests 
import config 
import time 
from lxml.cssselect import CSSSelector 
from lxml.html import fromstring 

print config.url 
headers = { 
    "Host": "www.neimanmarcus.com", 
    "Connection": "keep-alive", 
    "Content-Length": 106, 
    "Pragma": "no-cache", 
    "Cache-Control": "no-cache", 
    "Accept": "*/*", 
    "Origin": "http://www.neimanmarcus.com", 
    "X-Requested-With": "XMLHttpRequest", 
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36", 
    "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", 
    "Referer": "http://www.neimanmarcus.com/Stuart-Weitzman-Reserve-Suede-Over-the-Knee-Boot-Black/prod179890262/p.prod", 
    "Accept-Language": "en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4,fr;q=0.2,cs;q=0.2,zh-TW;q=0.2" 
} 
request = urllib2.Request(config.url, headers=headers) 
html = urllib2.urlopen(request) 
time.sleep(10) 
html = html.read() 
print html 
html = fromstring(html) 
sel = CSSSelector('option.addedOption') 
try: 
    options = sel(html) 
    print options 
except Exception as e: 
    print e 

fand ich Größe in einem Anfrage bekam ist 'http://www.neimanmarcus.com/product.service' (eigentlich der Kopf nach dem Request-Header dieser Anfrage erstellt wird).

Wie bekomme ich die ganze Seite Informationen (vor allem mit der Boot-Größe)?

Ich habe auch versucht, http://www.neimanmarcus.com/product.service direkt anfordern, aber auch fehlgeschlagen.

Antwort

2

Als ich das richtig verstehe: egal wie lange der Code schläft es hat immer noch die Schuhgröße nicht geladen?

Da Sie keinen kopflosen Browser verwenden, führen Sie kein Javascript auf der angeforderten Seite aus. Versuchen Sie, einen kopflosen Browser wie PhantomJS zu verwenden. Hier eine Liste von mehr headless browsers.

Hier ein Weg, wie man PhantomJS in Python verwendet.

+0

Vielen Dank. Ich werde es später versuchen. – Cuero

0

verwenden Sie es wie:

with urllib2.urlopen(request) as response: 
    html = response.read() 
    print html 
    html = fromstring(html) 
    sel = CSSSelector('option.addedOption') 
    try: 
     options = sel(html) 
     print options 
    except Exception as e: 
     print e 

statt

html = urllib2.urlopen(request) 
time.sleep(10) 
html = html.read() 
... 
Verwandte Themen