1
我有我的烧瓶代码问题
,它不会只是我希望它相同的结构返回瓶 - For循环不返回相同的输出,因为我希望它
这里是我的代码对于初学者:
from flask import Flask, render_template, jsonify, request
from lxml import html
import urlopen, urllib
import requests
from bs4 import BeautifulSoup
import time
import datetime
app = Flask(__name__)
@app.route("/")
def index():
#tv
tvPage = requests.get("https://www.freeview.co.uk")
tvSoup = BeautifulSoup(tvPage.content)
tvData = tvSoup.find_all("div",{"class": "box__listing"})
tvList = []
for program in tvData:
tvList = tvList + [program]
tvNews = tvList
return render_template("main.html", tvNews=tvNews)
if __name__ == '__main__':
app.run(debug=True,port=6500)
而在HTML模板我有以下几点:
{% for program in tvNews %}
<li>{{ program.text }}</li>
{% endfor %}
这将返回以下:http://imgur.com/a/Va0AH
我的问题是:我怎样才能使每个新的时间段在一个新的行上?现在它将9pm和10pm视为一个字符串,而不是Freeview显示它的方式(请参见屏幕截图)
当我在终端中运行它时,我在新行中获取它,并且在使用chrome开发工具检查该元素时,它看起来像是在所有新行上。我究竟做错了什么?
非常感谢。
如果你只是提取你一定会在一行上得到的一切一个元素中的文本。 'box__listing'元素在里面有更多的结构,利用它。 –
我试着得到“dl”元素,但那只是返回相同的结构。你能否指出我在这方面的正确方向?这里是我解析的网站:https://www.freeview.co.uk/ – erikvm
'dl'元素不是一个改进,因为一个元素仍然包含两行。使用'dt'和'dd'元素。 –