Ich bin neu zu Python, Kolben und schöne Suppe im Allgemeinen. Also hier ist der Deal. Ich schabe einige Daten aus dem Internet mit Beautifulsoup.Parsing List oder dict zu Flask von Beautifulsoup
from bs4 import BeautifulSoup
import requests
# PageURL's configure
mainpage = 'http://www.myauto.ge/'
pageurl = 'http://www.myauto.ge/?action=search&page='
pagenum = 0
# Looping Pages. Seems Wrong but doing its job?
for x in range(0, 2):
pagenum += 1
r = requests.get(pageurl + str(pagenum))
soup = BeautifulSoup(r.content, 'html.parser')
for cars in soup.find_all('div', {'class': 'car-info-wrapper'}):
cname = cars.find("div", {"class": "car-name-wrapper"}).find('a').get_text()
cyear = cars.find("p", {"class": "cr-levy car-year"}).get_text()
ceng = cars.find("div", {"class": "cr-det-in cr-engine"}).p.get_text()
cengroad = cars.find("div", {"class": "cr-det-in cr-road"}).p.get_text()
# clink = cars.find('a').get('href')
, wenn ich drucken cname, cyear, ceng und cengroad seine seine Arbeit perfekt zu tun, wie ich es will. aber jetzt versuche ich das in flaschen zu machen. Anstatt eine Datenbank in sqlite3 zu erstellen, möchte ich, dass sie einfach Daten scrappt und sie in index.html parst.
dies ist mein app.py flaschen code.
# Import
from flask import Flask, render_template
import requests
from bs4 import BeautifulSoup
app = Flask(__name__)
# mainpage = 'http://www.myauto.ge/'
pageurl = 'http://www.myauto.ge/?action=search&page='
# pagenum = 0
# Our index
@app.route('/')
@app.route('/index')
def index():
# for x in range(0, 2):
# pagenum += 1
r = requests.get(pageurl)
soup = BeautifulSoup(r.content, 'html.parser')
data = []
for cars in soup.find_all('div', {'class': 'car-info-wrapper'}):
cname = cars.find("div", {"class": "car-name-wrapper"}).find('a').get_text()
data.append(cname)
datayear =[]
for cars in soup.find_all('div', {'class': 'car-info-wrapper'}):
cyear = cars.find("p", {"class": "cr-levy car-year"}).get_text()
datayear.append(cyear)
return render_template("index.html", data=data,datayear=datayear)
if __name__ == '__main__':
app.run(debug=True)
das ist mein index.html
{% extends "base.html" %}
{% block body %}
<table class="table">
<thead>
<tr>
<th>Car</th>
<th>Year</th>
<th>Engine</th>
<th>Road so far</th>
</tr>
</thead>
<tbody>
<tr>
<td> {{ data }} </td>
<td> {{ datayear }} </td>
</tr>
</tbody>
</table>
{% endblock %}
versuchen, wenn zu
<tr>
{% for x in data %}
<td> {{ x }} </td>
<td> </td>
</tr>
I get what i want but only for Car name
so, wie es mit C zu tun ein Jahr das gleiche
<tr>
{% for x in data %}
<td> {{ carname }} </td>
<td> {{ caryear }} </td>
</tr>
oder etwas tun und dann Split-Liste?
data = []
for cars in soup.find_all('div', {'class': 'car-info-wrapper'}):
cname = cars.find("div", {"class": "car-name-wrapper"}).find('a').get_text()
cyear = cars.find("p", {"class": "cr-levy car-year"}).get_text()
data.append(cname)
data.append(cyear)
oder sollte ich es ohne Liste und dict versuchen? Ich möchte nur nicht db verwenden.
Danke fürs Lesen.
Wissen Sie, wie Klassen in Python zu machen? –
nein :(aber ich lerne den harten Weg :) –
Wie wörtlich "lernen Python den harten Weg"? Es gibt irgendwo auf dieser Seite, die alle Dinge auflistet, die mit diesen Guides falsch sind. –