Проблема Scaping Instagram Hashtag post count with hashtags that have special characters - PullRequest
0 голосов
/ 26 мая 2020

Так что я могу очистить количество сообщений хэштега instagram с помощью приведенного ниже кода.

from selenium import webdriver

driver = webdriver.Firefox()

ig_link = 'https://www.instagram.com/explore/tags/100x35/'

driver.get(ig_link)

# Scrape Posts Count
posts_count = driver.find_element_by_xpath('//*[@id="react-root"]/section/main/header/div[2]/div[1]/div[2]/span/span').text

print(posts_count)
driver.close()

У меня проблема в том, что тег ha sh имеет флаг, например:

https://www.instagram.com/explore/tags/100x35 ?? /

from selenium import webdriver

driver = webdriver.Chrome()

ig_link = 'https://www.instagram.com/explore/tags/100x35??/'

driver.get(ig_link)

# Scrape Posts Count
posts_count = driver.find_element_by_xpath('//*[@id="react-root"]/section/main/header/div[2]/div[1]/div[2]/span/span').text

print(posts_count)
driver.close()

Я получаю следующую ошибку:

Сообщение: нет такого элемента: невозможно найти элемент: {" method ":" xpath "," selector ":" // [@ id = "react- root"] / section / main / header / div [2] / div [1] / div [2] / span / span "} *

1 Ответ

1 голос
/ 26 мая 2020

Я считаю, что вам нужно закодировать URL-адрес, чтобы получить код UTF-8 для флага. В этом случае вы можете заменить

??

на

% F0% 9F% 87% B5% F0% 9F % 87% B7

, чтобы получить текстовый URL-адрес и получить те же результаты. Этот инструмент должен быть полезен, если вы собираетесь делать это вручную: ссылка

urllib также имеет инструмент, если вы хотите сделать это автоматически в python

>>> import urllib.parse
>>> query = 'Hellö Wörld@Python'
>>> urllib.parse.quote(query)
'Hell%C3%B6%20W%C3%B6rld%40Python'

Подробнее об этом здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...