2017-06-21 3 views
0

Ich versuche, eine Python 2.7 craigslist scraper anzupassen, die ich online gefunden habe, um mit Python 3.6 zu arbeiten.Adapting Craigslist Scraper Python

Aber jedes Mal, wenn ich das Python-Skript ausführen, gibt es nichts zurück. Liegt es daran, dass ich nicht auf die richtigen HTML-Tags abziele? und wenn ja, wie würde ich die richtigen html-tags zielen?

Ich gehe davon aus, es ist dieser Teil des Codes hier:

for listing in soup.find_all('p',{'class':'result-row'}): 
    if listing.find('span',{'class':'result-price'}) != None: 

Voll Skript ist unten.

Vielen Dank im Voraus.

import requests 
from bs4 import BeautifulSoup 
from urllib.parse import urljoin 

URL = 'https://vancouver.craigslist.ca/search/sss?query=Vespa' 
BASE = 'https://vancouver.craigslist.ca/' 

response = requests.get(URL) 

soup = BeautifulSoup(response.content,"html.parser") 
for listing in soup.find_all('p',{'class':'result-row'}): 
    if listing.find('span',{'class':'result-price'}) != None: 
     price = listing.text[2:6] 
     price = int(price) 
     if price <=3600 and price > 1000: 
      print (listing.text) 
      link_end = listing.a['href'] 
      url = urljoin(BASE, link_end) 
      print (url) 
      print ("\n") 
print('test') 

Antwort

0

Du hast Recht über dieses ist die wahrscheinliche Problem:

for listing in soup.find_all('p',{'class':'result-row'}): 
    if listing.find('span',{'class':'result-price'}) != None: 

Dieses Stück für die jeweilige Web-Seite bearbeitet werden muss, Sie kratzen. Haben Sie sich den HTML-Code der Seite angesehen und diese beiden Zeilen verifiziert? Wenn nicht, klicken Sie mit der rechten Maustaste auf die Seite und wählen Sie "Seitenquelle anzeigen". Dann müssen Sie die bestimmten Daten finden, die Sie abkratzen möchten.

Wenn ich etwas von einer Webseite packen will, die in dem HTML-Code wie folgt aussieht:

<div class='what'>hello</div> 

Ich würde diesen Code ändern oben dazu:

for listing in soup.find_all('div',{'class':'what'}): 
    # do something 
Verwandte Themen