BS4: поиск родительского класса в поисковой выдаче Google с использованием Python - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь вычеркнуть заголовки из поисковой системы Google. Проблема в том, что когда я создаю цикл for, я получаю «TypeError: find () не принимает аргументов ключевого слова».

Достаточно просто, когда я нашел решение, мне просто пришлось бы удалить «.text» из исходного кода (код показан ниже). Но когда я это делаю, я получаю другую ошибку: «TypeError: объект типа 'Response' не имеет len (). Мне было интересно, есть ли обходной путь к этому? Код, который я предоставил ниже, с" .text "Было интересно, сможет ли кто-нибудь найти решение этой проблемы.

from bs4 import BeautifulSoup
import requests

source = requests.get("https://www.google.com/search?q=online+education").text

for soup in BeautifulSoup(source, 'lxml'):
    headline = soup.find("div", class_="BNeawe vvjwJb AP7Wnd")
    print(headline)

Я ожидаю вернуть все десять заголовков со страницы результатов поиска в Google.

1 Ответ

0 голосов
/ 03 ноября 2019

Сначала найдите все BNeawe vvjwJb AP7Wnd класс, а затем выполните итерацию по всем результатам.

import requests
from bs4 import BeautifulSoup

source = requests.get("https://www.google.com/search?q=online+education").text

soup = BeautifulSoup(source, 'lxml')

headlines = soup.find_all("div", class_="BNeawe vvjwJb AP7Wnd")

for headline in headlines:
    print(headline.text, end=', ')

Вывод:

What is online education | Definition of Online education is ..., Online Education | Encyclopedia.com, 5 Advantages Of Online Learning: Education Without Leaving Home ..., Online Education & Teaching Courses | Harvard University, What is online education? - Lynda.com, What is Online Education? - Online-Education.net, 50 Top Online Learning Sites - Best College Reviews, Benefits of Online Education | Community College of Aurora in ..., 10 Advantages of Taking Online Classes | OEDB.org, Online learning in higher education - Wikipedia, 
...