Найти - Пользователи
Полная версия: lxml requests
Начало » Python для новичков » lxml requests
1
i0i8
Добрый день! Недавно начал изучать Python, прошу строго не судить. Суть проблемы такая, пишу парсер google, таким образом что бы он подставлял ключевые слова в запрос , затем полученный ответ записывал в текстовый файл с ( сылка, титул, краткое описание). Ссылки я смог получить, но возникла проблема с титлом и кратким описанием ссылок.
 import requests
from lxml.html import fromstring
GOOGLE_SERCHE = 'https://www.google.ru/search?q={}' 
KYE = 'python'
ITEM_PARS = '.r' #r ссылки
def main():
    write_info(get_pages())
def get_pages():
    r = requests.get(GOOGLE_SERCHE.format(KYE))
    ref = fromstring(r.text)
    for e in ref.cssselect(ITEM_PARS):
        a = e.cssselect('a')[0]
        href = a.get('href').lstrip('\/url?q=').split('&',1)[0]
    return(href)
def write_info(serche):
    f = open("resut.txt","w")
    f.write(serche)
    f.close 
if __name__ == '__main__':
    main()
В гугле краткое описание в <span>, но не могу его вытащить… Пробовал так же xpath`ом , не получилось. Посоветуйте пожалуйста как развить дальше парсер. Спасибо за помощ
python335
Ошибка!
Ты в main() вызываешь write_info и get_pages, а нельзя! Выучи ООП и поймешь что для вызова функции, команда которая ее вызывает должна стоять после обьявления функции:
 import requests
from lxml.html import fromstring
GOOGLE_SERCHE = 'https://www.google.ru/search?q={}' 
KYE = 'python'
ITEM_PARS = '.r' #r ссылки
def write_info(serche):
    f = open("resut.txt","w")
    f.write(serche)
    f.close
def get_pages():
    r = requests.get(GOOGLE_SERCHE.format(KYE))
    ref = fromstring(r.text)
    for e in ref.cssselect(ITEM_PARS):
        a = e.cssselect('a')[0]
        href = a.get('href').lstrip('\/url?q=').split('&',1)[0]
    return(href)
def main():
    write_info(get_pages())
if __name__ == '__main__':
    main()
i0i8
python335
Ошибка!Ты в main() вызываешь write_info и get_pages, а нельзя! Выучи ООП и поймешь что для вызова функции, команда которая ее вызывает должна стоять после обьявления функции:
Эм, спасибо за внимание к теме, но вопрос был - как вытащить данные из тега <span>, href я нормально и так вытаскиваю и без перестановки функций местами.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB