Ich habe einen Code geschrieben, um Name, Link und Preis von craigslist zu analysieren. Wenn ich das Ergebnis drucke, werden diese als Liste gekratzt. Ich habe versucht, wie der eingefügte Code unten einen Workaround zu bekommen, aber es gibt falsche Tripel, besonders wenn ein Wert keine ist, erhält es den nächsten verfügbaren Wert von einem anderen Tripel und so weiter. Aus diesem Grund ist es in diesem Fall nicht von Nutzen. Ich hoffe, ich habe einen Vorschlag, wie ich das erreichen kann, egal ob es Itertools oder andere Methoden sind.Itertools in web_crawler geben falsche Tripel
import requests
from lxml import html
from itertools import zip_longest
Page_link="http://bangalore.craigslist.co.in/search/rea?s=120"
def parsing_craigslist(url):
response = requests.get(url)
tree = html.fromstring(response.text)
title = tree.xpath("//p[@class='result-info']//a[contains(concat(' ', @class, ' '), ' result-title ')]/text()")
link = tree.xpath("//p[@class='result-info']//a[contains(concat(' ', @class, ' '), ' result-title ')]/@href")
price = tree.xpath("//p[@class='result-info']//span[@class='result-price']/text()")
for i,j,k in zip_longest(title,link,price,fillvalue=None):
print(i,j,k)
parsing_craigslist(Page_link)
sehen sie getrennt wie, 'title' auf einer Zeile dann' link' auf einem anderen dann 'price' auf einem dritten? Verwenden Sie einfach drei 'print' Anweisungen oder verwenden Sie' pprint'. –
Danke Tadhg McDonald-Jensen für Ihre Antwort. Es tut mir schrecklich leid, dass ich nicht in der Lage war zu klären, wie der Output sein sollte. Jetzt kannst du sehen. – SIM
Ich habe dein Scraping versucht, es funktioniert, ich benutze zip: 'für i, j, k in zip (Titel, Link, Preis):' Was ist dein Problem? –