извлечь количество результатов из поиска Google - PullRequest
0 голосов
/ 06 ноября 2018

Я пишу веб-скребок, чтобы извлечь количество результатов поиска в поиске Google, который появляется в левом верхнем углу страницы результатов поиска. Я написал код ниже, но я не понимаю, почему фразу_extract имеет значение None. Я хочу извлечь фразу "Около 12 010 000 000 результатов". в какой части я совершаю ошибку? может неправильно разбирать HTML?

import requests
from bs4 import BeautifulSoup

def pyGoogleSearch(word):   
    address='http://www.google.com/#q='
    newword=address+word
    #webbrowser.open(newword)
    page=requests.get(newword)
    soup = BeautifulSoup(page.content, 'html.parser')
    phrase_extract=soup.find(id="resultStats")
    print(phrase_extract)

pyGoogleSearch('world')

example

1 Ответ

0 голосов
/ 06 ноября 2018

Вы на самом деле используете неправильный URL для запроса поисковой системы Google. Вы должны использовать http://www.google.com/search?q=<query>.

Так бы это выглядело так:

def pyGoogleSearch(word):
    address = 'http://www.google.com/search?q='
    newword = address + word
    page = requests.get(newword)
    soup = BeautifulSoup(page.content, 'html.parser')
    phrase_extract = soup.find(id="resultStats")
    print(phrase_extract)

Вы также, вероятно, просто хотите, чтобы текст этого элемента, а не сам элемент, поэтому вы можете сделать что-то вроде

phrase_text = phrase_extract.text

или для получения фактического значения в виде целого числа:

val = int(phrase_extract.text.split(' ')[1].replace(',',''))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...