Очистить источник сайта и найти слово - PullRequest
0 голосов
/ 21 мая 2018

У меня есть этот код для Python, но он ищет фактическую страницу, а не источник страницы.

import requests
from bs4 import BeautifulSoup

def count_words(url, the_word):
    r = requests.get(url, allow_redirects=False)
    soup = BeautifulSoup(r.content, 'lxml')
    words = soup.find(text=lambda text: text and the_word in text)
    print(words)
    return len(words)


def main():
    url = 'google.com'
    word = 'google'
    count = count_words(url, word)
    print('\nUrl: {}\ncontains {} occurrences of word: {}'.format(url, count, word))

if __name__ == '__main__':
    main()

Как мне сделать это для поиска источника страницытоже?

Я не хочу считать.Да, я знаю, что должен удалить часть count {}.Но как мне сделать так, чтобы он загружал список веб-сайтов из текстового файла, и если найдено слово x для печати «X найдено на этом веб-сайте»

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 21 мая 2018

Если вы хотите найти в исходном коде наличие определенной подстроки, вам не нужно использовать BeautifulSoup.Это позволит вам только проанализировать фактическое содержимое страницы, не включая исходный код.

Замените count_words() на следующий код.

def count_words(url, the_word):
    r = requests.get(url).text    
    return r.count(the_word)

Output (do NOT include this in the final code):
>>> count_words('https://google.com', 'Google')
8

Вам просто нужно получить веб-страницуИсходный код в виде строки, используя requests, и подсчитать вхождения подстроки, используя .count().

. Кроме того, убедитесь, что вы добавили схему (например, http, https) в свой URL,В противном случае, BeautifulSoup «взбесится».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...