Задать вопрос
@libertyswift

Как спарсить несколько страниц по одному xpath?

Есть несколько url страниц в списке
url1 = 'http://_______________________'
url2 = 'http://_______________________'
url3 = 'http://_______________________'
url_list = ['url1','url2','url3','url4']
Как спарсить их данные по одному xpath
С одной страничкой получается так
from grab import Grab
g = Grab()
g.go('http://______________________________')
print (g.doc.select('//div[@class="______________"]').text()[1:])
А как это сделать для списка url где xpath не меняется?
  • Вопрос задан
  • 298 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
dimonchik2013
@dimonchik2013
non progredi est regredi
цикл не?
g = Grab()
for url in urls:
  g.go('http://______________________________')
  print (g.doc.select('//div[@class="______________"]').text()[1:])
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@libertyswift Автор вопроса
Что я делаю не так?
from grab import Grab
g = Grab()
url1 = 'http:________________________________'
url2 = 'http:________________________________'
url3 = 'http:________________________________'
url4 = 'http:________________________________'
urls = ['url1','url2','url3','url4']

for url in urls:
g.go(urls)
print (g.doc.select('//div[@class="______________"]').text()[1:])

___________________________________________________________________________________________________________________________
Нашел вот такое решение все работает НО print выводит значения в строку в квадратных скобках и кавычках, так ['Значение', 'Значение', 'Значение'] как можно вывести их в столбец ?
from grab import Grab
g = Grab()
url1 = 'http:_________________'
url2 = http:_________________'
url3 = http:_________________'

url_list = [url1, url2, url3 ]
def page_handler(url):
resp = g.go(url)
data = g.doc.select('//div[@class="________________"]').text()[1:]
return data

all_data = [page_handler(url) for url in url_list]
print(all_data)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы