Может только конкатенировать str (не "NoneType") в str BeautifulSoup
привет всем я делаю в своем проекте поиск в google с помощью beautifulsoup и я получил это сообщение can only concatenate str (not "NoneType") to str when I try to search this is search.py
from django.shortcuts import render, redirect
import requests
from bs4 import BeautifulSoup
# done
def google(s):
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36'
headers = {"user-agent": USER_AGENT}
r=None
links = []
text = []
r = requests.get("https://www.google.com/search?q=" + s, headers=headers)
soup = BeautifulSoup(r.content, "html.parser")
for g in soup.find_all('div', class_='yuRUbf'):
a = g.find('a')
t = g.find('h3')
links.append(a.get('href'))
text.append(t.text)
return links, text
и это views.py
from django.shortcuts import render, redirect
from netsurfers.search import google
from bs4 import BeautifulSoup
def home(request):
return render(request,'home.html')
def results(request):
if request.method == "POST":
result = request.POST.get('search')
google_link,google_text = google(result)
google_data = zip(google_link,google_text)
if result == '':
return redirect('home')
else:
return render(request,'results.html',{'google': google_data})
и это urls.py
from django.contrib import admin
from django.urls import path,include
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.home,name='home'),
path('results/',views.results,name='Result')
]
и это шаблонный дом
<form method='post' action="{% url 'Result' %}" class="d-flex" role="search">
{% csrf_token %}
<input class="form-control me-2 " type="search" placeholder="ابحث وشارك بحثك مع الاخرين" aria-label="Search" style="width:22rem;">
<input type="submit" class="btn btn-outline-success" value="ابحث" >
</form>
и вот результаты шаблона
{% for i,j in google %}
<a href="{{ i }}" class="btn mt-3 w-100">{{ j }}</a><br>
{% endfor %}
Я пытаюсь искать в google с помощью библиотеки BeautifulSoup, но вместо этого получаю такое сообщение можно конкатенировать только str (не "NoneType") в str
ваш шаблон ввода должен иметь свойство name
<input class="form-control me-2 " type="search" placeholder="ابحث وشارك بحثك مع الاخرين" aria-label="Search" style="width:22rem;" name="search">