Der von mir erstellte Crawler ruft Namen und URLs von einer Webseite ab. Jetzt kann ich mir keine Idee machen, meinen Crawler dazu zu bringen, die von next_page erzeugten Links zu verwenden, um Daten von der nächsten Seite zu holen. Ich bin sehr neu in der Erstellung von Crawlern mit Klassen, weil ich mich nicht weiter bewegen kann. Ich habe bereits eine Initiative ergriffen, um eine kleine Wendung in meinem Code zu machen, aber es bringt weder ein Ergebnis noch löst es einen Fehler aus. Hoffe, dass jemand einen Blick darauf werfen wird.Die generierten Links für die nächste Seite können nicht rekursiv gecrawlt werden
import requests
from lxml import html
class wiseowl:
def __init__(self,start_url):
self.start_url=start_url
self.storage=[]
def crawl(self):
self.get_link(self.start_url)
def get_link(self,link):
url="http://www.wiseowl.co.uk"
response=requests.get(link)
tree=html.fromstring(response.text)
name=tree.xpath("//p[@class='woVideoListDefaultSeriesTitle']/a/text()")
urls=tree.xpath("//p[@class='woVideoListDefaultSeriesTitle']/a/@href")
docs=(name,urls)
self.storage.append(docs)
next_page=tree.xpath("//div[contains(concat(' ', @class, ' '), ' woPaging ')]//a[@class='woPagingItem']/@href")
for npage in next_page:
if npage is not None:
self.get_link(url+npage)
def __str__(self):
return "{}".format(self.storage)
crawler=wiseowl("http://www.wiseowl.co.uk/videos/")
crawler.crawl()
for item in crawler.storage:
print(item)
Danke sir t.m.adam, für Ihre Antwort. Es gibt nichts zu versuchen. Jedes Mal, wenn du meinen unordentlichen Code berührst, funktioniert es wie Magie, so wie es jetzt ist. Eine weitere Sache, die ich von hier erwarte, ist: Wie kann ich die Ergebnisse in zwei Spalten anzeigen, wie in Videotitel in der ersten Spalte und Link ist in der zweiten Spalte. Ich meinte, dass der resultierende Code als Liste geparst wird. Es ist alles meine Schuld obwohl. Danke nochmal, mein Herr. – SIM
Ich aktualisierte die for-Schleife, druckt zwei Spalten. Sie können die 8. Zeile in 'get_link' auskommentieren, wenn Sie möchten, dass die Links vollständige URLs sind –
OMG !!!!! Was Sie hier getan haben, ist völlig jenseits meiner Erwartung. Es löst alle Probleme. Lang lebe Sir t.m.adam !!!! – SIM