Невозможно получить `href` из окна встроенного канала Reddit, используя scrapy - PullRequest
5 голосов
/ 25 марта 2019

Я пытаюсь получить имя учетной записи reddit из окна канала reddit по следующей ссылке:

fetch('https://coinmarketcap.com/currencies/ripple/')

Теперь я могу успешно получить данные учетной записи Twitter, используя следующий код:

#fetch the tweet account of coin
tweet_account = response.xpath('//a[starts-with(@href, "https://twitter.com")]/@href').extract()
tweet_account = [s for s in tweet_account if s != 'https://twitter.com/CoinMarketCap']
tweet_account = [s for s in tweet_account if len(s) < 60 ]
print(tweet_account) 

Однако я не могу получить учетную запись Reddit, используя аналогичный метод ??

reddit_account = response.xpath('//a[starts-with(@href, "https://www.reddit.com")]/@href').extract()
reddit_account = [s for s in reddit_account if s != 'https://www.reddit.com/r/CoinMarketCap'']
reddit_account = [s for s in reddit_account if len(s) < 60 ]
print(reddit_account)

Даже я пытался получить напрямую, используя простой xpath, но он не работает:

response.xpath('//*[@id="reddit"]/div/div[1]/h4/a[2]/@href')

Выход для:

response.xpath('//*[@id="reddit"]').extract() 

показывает

<b>['<div id="reddit" class="col-sm-6 text-left">\n</div>']</b>

Но внутри этого тега div еще много тегов ?? почему я не могу получить эти теги ??

К сожалению, Scrapy не может найти то, что находится внутри этого div. Этот реддит-фид даже не имеет фрейма. Есть ли какой-то отдельный URL, по которому я должен звонить ??

Изменить <\ b>:

Я показал (ответ) в оболочке. а у него есть данные твиттера но не reddit ?? почему так должно быть?

1 Ответ

4 голосов
/ 25 марта 2019

Все данные не будут в источнике страницы, как показано на веб-сайте. Если вы используете браузер Google Chrome, нажмите Ctrl + U, чтобы увидеть источник страницы, затем Ctrl + F, чтобы найти нужные данные. Если он отсутствует в источнике страницы, возможно, вам придется отправить несколько других запросов для получения данных.

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