我想知道我需要采用哪种方法使用Python或Flask来执行以下任务:
我的编辑器是崇高的,我在Windows Powershell下运行它
现在我的代码显示了这个:

因此,当您输入搜索时,它会转到新页面并显示结果(例如:ddddd)

但我想检查URL是否有效,如果有效,则返回该页面及其子页面上所有链接的列表,如下所示:

对编程世界中的新手有什么想法吗?(现在不是很新,还有很多需要学习的东西......)
谢谢您的帮助.
在这里我的代码带来了这个结果(它的工作):
所以一个项目文件夹里面有我的.py设置Flask和一个带有.html的模板文件夹.
# -*- coding: utf-8 -*-
from flask import Flask, render_template, request
import re
app = Flask (__name__)
@app.route("/")
def index():
return render_template('index.html')
@app.route('/search', methods=['POST', 'GET'])
def search():
error = True
if request.method == 'POST':
return request.form['urlsearch']
else:
return request.args.get('urlsearch')
if __name__ == "__main__":
app.run()
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
<title>URL TEST</title>
</head>
<body>
<ul id="navigation">
{% for item in navigation %}
<li><a href="{{ item.href }}">{{ item.caption }}</a></li>
{% endfor %}
</ul>
<h1 style="color:orange;">You can put your URL here :</h1>
{{ a_variable }}
<form method="get" action="/search">
<p>Please Input an URL below : </p>
<input type="text" name="urlsearch" />
<input type="submit" value="Search" />
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
你可以使用机械化:
from mechanize import Browser
br = Browser()
r = br.open("http://www.example.com/")
if r.code == 200:
for link in br.links():
print link
else:
print "Error loading page"
Run Code Online (Sandbox Code Playgroud)
from BeautifulSoup import BeautifulSoup
import urllib2
html_page = urllib2.urlopen("http://www.example.com")
if html_page.getcode() == 200:
soup = BeautifulSoup(html_page)
for link in soup.findAll('a'):
print link.get('href')
else:
print "Error loading page"
Run Code Online (Sandbox Code Playgroud)
我之前没有和Flask合作太多,但试试这个:
据我所知urlsearch,你是从表单获取的URL,所以添加它的检查
@app.route('/search', methods=['POST', 'GET'])
def search():
error = True
if request.method == 'POST':
return request.form['urlsearch']
else:
br = Browser()
r = br.open(request.args.get('urlsearch'))
if r.code == 200:
return br.links()
else:
return "Error loading page"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
286 次 |
| 最近记录: |