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

Как найти элемент в xml-коде страницы ВК (метод xpath() в Python не находит, либо неверно задан xpath-путь)?

Задача - по ссылке на страницу ВК спарсить и скачать все фотографии профиля.
1) Ссылка: https://vk.com/id1
2) Программа переходит к фотографиям профиля: https://vk.com/id1?z=albums1
3) Далее парсит каждую фотографию. Например, нужна эта: https://vk.com/id1?z=photo1_456315566%2Fphotos1

import requests
from lxml import html

URL_page = 'https://vk.com/id1'
VK = "https://vk.com"

#getting the page's tree
page = requests.get(URL_page)
tree = html.fromstring(page.content)

#going to photos & getting new page tree
!!!
ищу этот элемент:
<a href="/albums1" onclick="return nav.change({z: 'albums1'}, event)" class="module_header">
...
</a>
!!!
photos_of_user = tree.xpath("//*[@id=\"profile_photos_module\"]/a")
photos_of_user_url = photos_of_user[0].attrib['href']

URL_page = VK + photos_of_user_url
#непосредственно переход
page = requests.get(URL_page)
tree = html.fromstring(page.content)

#searching of photos & creating it's urls
photos = [x.attrib['href'] for x in tree.xpath("//*[@id=\"photo_row_1_456315566\"]/a")]
photos_url = [(VK + x) for x in photos]


Так вот, первый список (photos_of_user), а следовательно, и все последние, оказываются пустыми.
  • Вопрос задан
  • 454 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
LazyTalent
@LazyTalent
Data Engineer, Freelancer
Проблема не с xpath, а с тем что отдает сайт.
Сделай print(page.text) и посмотри, что в реальности ты получаешь от сайта.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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