Ich versuche, Daten von einer Webseite zu erhalten, wo ich alle Ihre Links verfolgen. Das Web ist schlecht modelliert, die Links in bestimmten Teilen der Seiten enthalten Leerzeichen vor und nach dem Link, also folgt scrapy und Ihr Web-Server leitet 301 Schleifen um.Scrapy sanitize URL Links
Ich habe versucht, die URL der Links zu filtern, aber es ist unmöglich, gibt immer leere Leerzeichen oder Symbol + zurück.
Teil Code
def cleanurl(link_text):
print "original: ", link_text
print "filter: ", link_text.strip("\s+\t\r\n '\"")
return link_text.strip("\s+\t\r\n '\"")
#return " ".join(link_text.strip("\t\r\n '\""))
#return link_text.replace("\s", "").replace("\t","").replace("\r","").replace("\n","").replace("'","").replace("\"","")
rules = (
Rule (LinkExtractor(allow=(), deny=(), process_value= cleanurl)),
)
Web Code
<a href=
" ?on_sale=1
"
class="selectBox">ON SALE
</a>
Ausgabe cleanurl
original: http://www.portshop.com/computers-networking-c_11257/ ?on_sale=1
filter: http://www.portshop.com/computers-networking-c_11257/ ?on_sale=1
habe ich versucht, reguläre Ausdrücke und andere zu verwenden, aber ich kann die URL nicht sanieren, in In einigen Fällen, wenn es in anderen nicht funktioniert, ändern Sie% 20 (Leerzeichen) in +.
Danke!
Können Sie Ihre Frage mit mehr URLs neu gestalten? Möglicherweise geben Sie uns ein paar URLs, die Sie verarbeiten und die Ausgabe derzeit und die Ausgabe, die Sie erwarten. –