【问题标题】:How to extract anchor class using beautifulsoup?如何使用 Beautifulsoup 提取锚类?
【发布时间】:2020-12-23 15:29:12
【问题描述】:

谁能帮我解决这个错误。我的头很痛,我浪费了我 1 个小时来解决这个问题。实际上,我将 query_links 设为 null(我应该获取所有类的值),但并非如此。

from flask import Flask, jsonify, request
# from markupsafe import escape
from bs4 import BeautifulSoup
import requests

app = Flask(__name__)

@app.route('/api/',methods=['GET'])
def API():
    if request.method == 'GET':
        url = 'https://www.brainyquote.com/'
        query = str(request.args['query'])

        if " " in query:
            query = str(query).replace(" ","+")
        else:
            pass

        search = '/search_results?q=' + query
        ready_url = url + search
        content = requests.get(ready_url).content
        soup =  BeautifulSoup(content, 'html.parser')
        quotes_links = soup.find_all("a", class_= "b-qt")
        print("hello")
        print(quotes_links)
        list = []
        for i in quotes_links:
            d = {}
            quote_url = url + i.get('href')
            quote_content = requests.get(quote_url).content
            quote_soup = BeautifulSoup(quote_content, 'html.parser')
            d['quote'] = quote_soup.find('p', class_= "b-qt").text
            d['author'] = str(quote_soup.find('p', class_= "bq-aut").text).strip()
            list.append(d)
            

        return jsonify(list)

if __name__ == "__main__":
    app.run(debug=True)

请帮助我。为什么我在 json 中没有得到任何价值。我的清单是空的。而且 Query_links 也是空的。有没有语法错误或其他什么?

【问题讨论】:

标签: python list api flask beautifulsoup


【解决方案1】:

您的 ready_url 变量最终会包含一个双斜杠(即 https://www.brainyquote.com//search_results?q=testing)。如果您在浏览器中或使用 curl 进行测试,您将看到不会产生任何结果。如果您修正了url 的定义,使其没有尾部斜杠(即url='https://www.brainyquote.com'),您的代码就可以工作。

【讨论】:

  • 天啊!!谢谢
猜你喜欢
  • 2016-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-06
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
相关资源
最近更新 更多