#python #selenium #instagram #hashtag
Вопрос:
Я не первый и не последний, кто попал в это: не могу получить все ссылки из instagram. Хотя это обычное дело, я не могу получить все ссылки из класса, и все решения, которые я пробовал до сих пор, потерпели неудачу. Так что, был бы признателен за руку или удар в правильном направлении.
Я ищу хэштег:
hashtags = '#hashtag'
search.send_keys(hashtags)
time.sleep(2)
search.send_keys(Keys.ENTER)
time.sleep(2)
search.send_keys(Keys.ENTER)
link_list=[]
links = driver.find_elements_by_class_name('Nnq7C weEfm')
for link in links:
link_list.append(link.get_attribute('href'))
print(link_list)
Есть несколько классов верхнего уровня, которые выбирают все фотографии, ни один из которых не дает мне href.
Я могу получить href из v1Nh3 kIKUG _bz0w
— класса, определяющего отдельную фотографию на странице результатов поиска. Несмотря на v1Nh3 kIKUG _bz0w
то, что на странице 33, я получаю только одну ссылку.
Комментарии:
1. Чтобы получить значения href, вам нужно указать xpath /a в теге a, а затем присвоить ему атрибут get_attribute(‘href’).
2. !!! Сработало идеально, как по волшебству!
3. На самом деле это единственное решение, которое извлекает hrefs. Тем не менее, он дает мне все ссылки на странице, включая предложенных друзей и даже хэштеги соседей. Интересно, как рассортировать только те, которые мне нужны, по нужному классу? ` «если `» снова не возвращает ничего.
Ответ №1:
links=[x.get_attribute("href") for x in driver.find_elements_by_xpath("//div[@class='v1Nh3 kIKUG _bz0w']/a")]
Просто используйте /a в классе и получите такие ссылки. Я бы нашел более подходящий xpath, так как это имя класса выглядит динамичным.
Комментарии:
1.
hrefElements = wait.until(EC.visibility_of_all_elements_located((By.XPATH, "//div[@class='v1Nh3 kIKUG _bz0w']/a"))) elements_link = [x.get_attribute("href") for x in hrefElements]
в конце концов сработало