こちらはscrapyでスクレイピングしてきたデータです。
site_dataという変数の中には10サイトほどのurl、title、ディスクリプション、h1~h6が多次元配列で格納されています。
画像1のように表示されているのですがurlの部分だけアンカーリンクを貼りたいのですがうまく行きません。
データの形は下記の様な感じです。
[{'url': 'hoge.com, 'title':'hogeのtitle', 'h1': 'hogeのh1'}, {'url': 'huge.com, 'title':'hubeのtitle' 'h1': 'hugeのh1'},{'url': 'title':'piyoのtitle', 'piyo.com, 'h1': 'piyoのh1'}]
<div> {% if site_data != None %} {# <li class="list-group" style="max-width: 1000px;">#} {% for dict in site_data %} {% for site_data_key, site_data_value in dict.items %} {% if site_data_key != 'rank' %}{# 検索順位は最初に表示しているためif文で消してある#} <li class="list-group-item bg-light">{{ dict.rank }}位【{{ site_data_key }}】<br>{{ site_data_value }}</li> {% endif %} {% endfor %} <br> {% endfor %} {% endif %} </div> ```![画像1](c1bfbab2acf35d3f8e9b7c78fbe3537f.png) この様にすると全体にアンカーがかかってしまいます。 ```ここに言語を入力 <li class="list-group-item bg-light">{{ dict.rank }}位【{{ site_data_key }}】<br><a href="{{ url }}" >{{ site_data_value }}</a></li> ```![![画像2](79b19f0c2e167d2a51d763f49263dde2.png)](c7fb072453b87bd91165ad1ee6bc7cdd.png) そもそもとしてこの様にhtmlで処理せずにviewsで処理してあとは貼るだけ。の様な処理にするべきなのでしょうか? よろしくお願いいたします。 **追記** テンプレート上で上手くいかないので、scrapyで取ってきたデータにアンカーをつければ良いだろうと思い。 ```ここに言語を入力 def process_item(self, item, spider): url = item.get(""url") a = "<a href=''>" b = "</a>" url_with_anchor = a+ url + b item['url'] = url_with_anchor return item
この様な式を追記すると
下記の様に文字列になってしまいました。
ここから文字列をとる様な処理はどうすればいいでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。