Как создать запрос и выполнить поиск в Google для получения информации о результатах первых нескольких результатов - PullRequest
0 голосов
/ 26 мая 2019

Я работаю над проектом с использованием Python (3.7), в котором мне нужно получить строку в качестве запроса от пользователя, а затем создать запрос и поиск в Google, после того как мне нужно получить первые 5 записей и выполнить текстИз этих результатов можно сделать вывод, что ответом может быть текстовая информация, код или файл исправления.

Я немного запутался в понимании текста и получил соответствующую информацию пользователя, такую ​​как фрагменты кода или файл pach, какя могу получить эти вещи?

Вот как я выполняю запрос:

@app.route('/<string:query>', methods=['GET'])
def search_query(query):
    results = []
    for j in search(query, tld='com', num=5, start=0, stop=5,
                    pause=2.0):
        print(j)
        results.append(j)
        # here I need to return user's reletive info from first 5 results


if __name__ == '__main__':
    app.run()

1 Ответ

0 голосов
/ 13 июня 2019

Чтобы очистить ваш поиск в Google, вам нужно сначала создать базовый поиск, используя requests библиотеку Python, затем очистить ссылки, используя BeautifulSoup, а затем просто выбрать первые 5 из них, чтобы в будущем, если вы решите получить больше 5 ссылка, вам не нужно много менять код.

Также вам необходимо установить следующие библиотеки:

BeautifulSoup

requests

html5lib - pip install html5lib <--- HTML-анализатор деревьев </p>

пс - я уверен, что вы все это знаете, но это для меньшего

from requests import get
from bs4 import BeautifulSoup


def search_query(query):

    url = 'https://www.google.com/search?q='
    url_data = url + query
    raw = get(url_data)
    soup = BeautifulSoup(raw.content, 'html5lib')
    links = soup.find_all('a')
    allinks = []
    for link in links:
        a = link['href']
        if a.startswith('/url?'):         #<---- links starting from /url are the ones we want
            a = a.lstrip('/url?q=')       #<----using lstrip i take that part out
            a = a.split('&sa=')[0]        #<-----options, shortens the link without tampering with it
            allinks.append(a)
    print(allinks[:5])         #<----testing
    return allinks[:5]         #<-----Return it
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...