Как искать html-документ, как если бы это был обычный текст в python?

поэтому я пытаюсь создать программу, которая просматривает веб-сайт и ищет на каждой странице определенные фрагменты кода, которые хранятся в большом файле.

Для этого мне нужно извлечь html-код со страницы, а затем создать html-объект — для этого я использую BeautifulSoup. Сначала я пытался использовать эту функцию, чтобы фактически сопоставить код с исходным кодом html.

def textsearch(soup, exploit): 
    code = soup.find(text = re.compile(exploit)) 
    if code == None:
        print "Coudln't find the bad stuff!\n"
        return False
    else: 
        print "Found the bad code!\n" 
        return True

Прочитав документацию по BS4, я понял, что это не сработает, поэтому я начал работать над синтаксическим анализатором, чтобы взять «эксплойт» и преобразовать его в текст. Проблема в том, что не все эксплойты имеют такой формат (некоторые из них являются сценариями javascript), поэтому было бы лучше, если бы я мог рассматривать весь исходный html как один большой «текстовый документ» с точными символами, которые отображаются в источнике, но нет форматирование, а затем просто найдите любую совпадающую последовательность символов.

Есть ли хороший модуль для превращения источника html, полученного из Интернета, в такой объект?


person Quantumpencil    schedule 03.02.2015    source источник


Ответы (1)


я думаю это поможет

import requests
from bs4 import BeautifulSoup
def trade_spider(max_pages):
    page = 0
    while page <=max_pages:
        url = 'http://www.indeed.co.in/jobs?q=tripura&start=' + str(page)
        source_code = requests.get(url)
        plain_text = source_code.text
        soup = BeautifulSoup(plain_text)
        for jobs in soup.findAll('h2',{'class' :'jobtitle'}):
            #job = jobs.findAll('h2',{'class' :'jobtitle'})
            href = "http://www.indeed.co.in/" + jobs.a.get('href')
            title= jobs.a.string
            print(title)
            print(href)
            page +=10

trade_spider(20)

person Adi    schedule 03.02.2015