einen HTML-Parser verwenden bs4 sehr einfach zu bedienen ist, können Sie nach Preis bestellen können ?sort=pricedsc
auf die URL durch Zugabe so das erste Spiel der max sein wird und der letzte wird das die niedrigste (für diese Seite) zuletzt :
r = requests.get("http://orlando.craigslist.org/search/apa?sort=pricedsc")
from bs4 import BeautifulSoup
html = r.content
soup = BeautifulSoup(html)
print "Highest price: ${}".format(prices[0])
print "Lowest price: ${}".format(prices[-1])
print "Average price: ${}".format(sum(prices, 0.0)/len(prices))
Wenn Sie den niedrigsten Preis wollte man braucht, um zu bestellen aufsteigend:
r = requests.get("http://orlando.craigslist.org/search/apa?sort=priceasc")
from bs4 import BeautifulSoup
html = r.content
soup = BeautifulSoup(html)
prices = [int(pr.text.strip("$")) for pr in soup.select("span.price")]
print "Highest price: ${}".format(prices[-1])
print "Lowest price: ${}".format(prices[0])
print "Average price: ${}".format(sum(prices, 0.0)/len(prices))
Jetzt ist die Ausgabe sehr unterschiedlich:
Highest price: $70
Lowest price: $1
Average price: $34.89
Wenn Sie den Durchschnitt für alle benötigen Sie mehr Logik hinzufügen möchten. Standardmäßig sehen Sie nur 100 of 2500
Ergebnisse, aber das können wir ändern.
r = requests.get("http://orlando.craigslist.org/search/apa")
from bs4 import BeautifulSoup
html = r.content
soup = BeautifulSoup(html)
prices = [int(pr.text.strip("$")) for pr in soup.select("span.price")]
# link to next 100 results
nxt = soup.select_one("a.button.next")["href"]
# keep looping until we find a page with no next button
while nxt:
url = "http://orlando.craigslist.org{}".format(nxt)
r = requests.get(url)
soup = BeautifulSoup(r.content)
# extend prices to our list
prices.extend([int(pr.text.strip("$")) for pr in soup.select("span.price")])
nxt = soup.select_one("a.button.next")
if nxt:
nxt = nxt["href"]
, die Ihnen jeden Eintrag von 1-2500
Gibt es auf dieser Seite angezeigt werden, wenn Sie es in Ihrem Browser aufrufen? Es hat nicht für mich getan. – usr2564301
ach so wird es nur den höchsten Preis auf der Titelseite zeigen? Es tut mir leid, ich wusste nicht, dass meine Entschuldigungen – PostMagne
Eine Randnotiz: Sie sollten einen HTML-Parser wie BeautifulSoup zum Parsen von HTML, nicht Regex verwenden – Keatinge