извлекать информацию со страницы анонимного поиска твиттеров - PullRequest
0 голосов
/ 28 ноября 2018

Учитывая ограничения вызовов API Twitter , я ищу возможности получить результаты поиска, не имея учетной записи / приложения.Я понял, что этот URL

https://twitter.com/search?f=tweets&q=<keyWord1>%20<keyWord2>%20<keyWord3>&src=typd&lang=en

, где <keyWord1>%20<keyWord2>%20<keyWord3> - это поисковые запросы, действительно возвращает страницу (для примера этого ), включая информацию, закодированную в формате HTML:

<div class="js-tweet-text-container">
<p class="TweetTextSize  js-tweet-text tweet-text" lang="en" data-aria-label-part="0">tweetText..</p>
</div>

Я могу извлечь страницу, используя этот фрагмент:

#%%
import requests 

def srch(*keyWords):
    string = "%20".join(keyWords)
    url = 'https://twitter.com/search?f=tweets&q=' + string + '&src=typd&lang=en'
    return requests.get(url)

Теперь мои вопросы:

  1. Каков наилучший способ извлечь эту информацию?используя регулярные выражения re модуль или BeautifulSoup ...?
  2. какую информацию можно извлечь?Текст твита, идентификатор пользователя / имя, время-дата, количество лайков-ретвитов-комментариев видны на этой странице и, вероятно, должны быть извлечены?
  3. сколько твитов можно извлечь за один запрос или определенный промежуток времени?есть ли ограничение скорости, например, для модуля request для вызова этой страницы и извлечения HTML?Возможно ли, что они блокируют определенные IP-адреса?

Буду признателен, если вы приведете пример того, как это должно быть сделано.

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018
  1. это просто, используя beautifulsoup, но быстрее, используя re, но это может быть сложнее.
  2. какую информацию вы можете получить, просто увидев в li.js-stream-item
  3. этоможет извлечь 20 твитов без нумерации страниц

пример кода

tweets = soup.select('li.js-stream-item')
for tweet in tweets:
   name = tweet.select_one('FullNameGroup strong')
   text = tweet.select_one('p.TweetTextSize')
   timeStamp = tweet.select_one('a.tweet-timestamp').get('title')
0 голосов
/ 28 ноября 2018

Попробуйте пакет Kenneth Reitz для Twitter-scraper (https://github.com/kennethreitz/twitter-scraper). Вы можете очистить Twitter без пуха.

Кстати: Кеннет является автором пакетов запросов. Все, что он делает, потрясающе.

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