2015-06-03 2 views
0

Im пытается вытащить только ключевые слова из вывода XML, как показано на:Извлечение данных из XML-страницы в .txt

http://clients1.google.com/complete/search?hl=en&output=toolbar&q=test+a

Я попытался положить вместе ниже, но я, кажется, не получают любые ошибки или любой выход. Есть идеи?

import urllib2 as ur 
import re 

f = ur.urlopen(u'http://clients1.google.com/complete/search?hl=en&output=toolbar&q=test+a') 
res = f.readlines() 
for d in res: 
    data = re.findall('<CompleteSuggestion><\/CompleteSuggestion>',d) 
    for i in data: 
    print i 
    file = open("keywords.txt", "a") 
    file.write(i + '\n') 
    file.close() 

Я пытаюсь,

  1. Извлекает XML из URL данного
  2. список Магазин ключевых слов из файла XML, анализируется с помощью регулярных выражений

Спасибо,

+1

ли вы проверить, что регулярное выражение в FindAll работает правильно (путем установки некоторой константы содержания в «D»)?
Также. попробуйте добавить r перед строкой регулярного выражения, например r '<\/CompleteSuggestion>') –

+0

Эй, Барух, я не так хорош в Regex. Я предполагаю, что я сделал что-то неправильно в самом регулярном выражении. – BubblewrapBeast

+0

Вы должны использовать одну из многочисленных библиотек XML, входящих в стандартную библиотеку Python. – Iguananaut

ответ

1
from urllib2 import urlopen 
import re 

xml_url = u'http://clients1.google.com/complete/search?hl=en&output=toolbar&q=test+a' 
xml_file_contents = urlopen(xml_url).readlines() 

keywords_file = open("keywords.txt", "a") 

for entry in xml_file_contents: 
    output = "\n".join(re.findall('data=\"([^\"]*)',entry)) 
    print output 
    keywords_file.write(output + '\n') 

keywords_file.close() 

мощность:

test anxiety 
test america 
test adobe flash 
test automation 
test act 
test alternator 
test and set 
test adblock 
test adobe shockwave 
test automation tools 

Позвольте мне знать, в случае каких-либо сомнений