Что можно сделать после извлечения текста с помощью BeauitfulSoup? - PullRequest
1 голос
/ 02 апреля 2012

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

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

Мой вопрос: как только я получу весь текст в извлеченном файле, что я могу с ним сделать?У меня возникают проблемы с поиском способа изолировать определенное слово и дополнительно обрезать текст до того, что мне нужно.

Вот что у меня есть:

import urllib2
from BeautifulSoup import BeautifulSoup

url = 'http://www.website.com'
page = urllib2.urlopen(url)
soup = BeautifulSoup(page.read())

page = soup.findAll('title')

for element in page:    
    print element

file_name = raw_input("What do you want to name the file?> ")
text_file = open("/Users/user1/Projects/%s.txt" % file_name, "w")
text_file.write("%s" % page)
text_file.close()   

Что получаетсямне возвращено:

$<title>food</title>
<title>ball</title>
<title>car</title>
<title>desk</title>
<title>blue food</title>
<title>green food</title>
<title>red ball</title>

Как я могу получить печать только результатов, включающих «еду»?

Ответы [ 2 ]

0 голосов
/ 28 апреля 2012

Например, если вы хотите извлечь данные со страницы и поместить их в файл CSV, вы можете сделать так:

import urllib2
from BeautifulSoup import BeautifulSoup
import csv

file_name = raw_input("What do you want to name the file?> ")
c = csv.writer(open("%s.csv" % (file_name), "a"),delimiter=";" ) # Open the CSV File and Write in

url = 'http://www.website.com'
page = urllib2.urlopen(url)
soup = BeautifulSoup(page.read())

page = soup.findAll('title')

for element in page:    
    element = element.text.encode('utf-8')
    c.writerow([element])

Вы можете использовать свой файл CSV в Excel или / и текстредактор программного обеспечения.Может быть полезным Мой код далек от совершенства, но в любом случае должен работать:)

0 голосов
/ 02 апреля 2012

Вы можете получить содержимое элемента, используя .string. Если вы хотите включить результаты только с food, добавьте проверку для этого:

for element in page:
    if 'food' in element.string:
        print element.string
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...