Вейбо Паук
Эта программа может непрерывно сканировать данные одного или нескольких пользователей Sina Weibo (таких как Ху Гэ, Дилраба, Го Битин) и записывать информацию о результатах в файл или базу данных . Письменная информация включает в себя практически все данные пользователя Weibo, включая две категории: информация пользователя и информация Weibo . Поскольку контента слишком много, я не буду здесь вдаваться в подробности. Подробности смотрите в полученных полях. Если вам нужна только информация о пользователе, вы можете настроить функцию на сканирование только информации о пользователях Weibo. Этой программе необходимо установить файлы cookie для получения доступа к Weibo. Как получить файлы cookie, будет объяснено позже. Если вы не хотите устанавливать файлы cookie, вы можете использовать версию без файлов cookie, которая имеет аналогичные функции.
Результаты сканирования можно записывать в файлы и базы данных. Ниже приведены конкретные типы файлов записи.
- txt-файл (по умолчанию)
- csv-файл (по умолчанию)
- json-файл (необязательно)
- База данных MySQL (необязательно)
- База данных MongoDB (необязательно)
- База данных SQLite (необязательно)
Он также поддерживает загрузку изображений и видео с Weibo. Конкретные загружаемые файлы:
- Оригинальное изображение с оригинального Weibo (необязательно)
- Сделайте репост оригинального изображения с Weibo (необязательно).
- Оригинальное видео на Weibo (необязательно)
- Репост видео на Weibo (необязательно)
- Видео в оригинальном формате Weibo Live Photo (только в версии без файлов cookie)
- Репост видео с Weibo Live Photo (уникально для версии без файлов cookie)
Список содержания
[ТОС]
- Вейбо Паук
- Список содержания
- Полученные поля
- Информация о пользователе
- Информация Weibo
- Пример
- Операционная среда
- Инструкция по применению
- 0.Версия
- 1. Программа установки
- Установка исходного кода
- установка пипа
- 2. Настройки программы
- 3. Запустите программу
- Программа персонализации (опционально)
- Регулярно автоматически сканировать Weibo (необязательно).
- Как получить файлы cookie
- Как получить user_id
- Часто задаваемые вопросы
- академические исследования
- Связанные проекты
- способствовать
- Автор
- На что следует обратить внимание
Полученные поля
Этот раздел представляет собой описание информации о сканируемых полях. Чтобы отличить его от версии без файлов cookie, информация, сканируемая обеими версиями, указана ниже. Если информация уникальна для версии без файлов cookie, она будет помечена как не содержащая файлов cookie, а информация, которая не отмечена, является общей для обеих версий.
Информация о пользователе
- Идентификатор пользователя: идентификатор пользователя Weibo, например «1669879400». На самом деле это поле является известным.
- Псевдоним: псевдоним пользователя, например «Дорогая Дилраба».
- Пол: пол пользователя Weibo.
- День рождения: дата рождения пользователя.
- Местоположение: местоположение пользователя
- Опыт обучения: название и время школы, когда пользователь посещал школу.
- Опыт работы: название компании пользователя и время
- Sunshine Credit (версия без файлов cookie): Sunshine Credit пользователя.
- Время регистрации в Weibo (версия без файлов cookie): дата регистрации пользователя в Weibo.
- Количество Weibos: количество всех Weibos пользователя (ретвиты Weibos + оригинальные Weibos).
- Количество подписчиков: количество сообщений Weibo, на которые подписан пользователь.
- Количество поклонников: количество поклонников пользователя.
- Введение: Профиль пользователя
- Адрес домашней страницы (версия без файлов cookie): URL-адрес домашней страницы мобильной версии Weibo.
- URL-адрес аватара (версия без файлов cookie): URL-адрес аватара пользователя.
- URL-адрес аватара высокой четкости (версия без файлов cookie): URL-адрес аватара пользователя в высоком разрешении.
- Уровень Weibo (версия без файлов cookie): уровень пользователя Weibo.
- Уровень членства (версия без файлов cookie): уровень пользователя Weibo, уровень для обычных пользователей — 0.
- Проходить ли аутентификацию (версия без файлов cookie): аутентифицирован ли пользователь, логический тип.
- Тип аутентификации (версия без файлов cookie): тип аутентификации пользователя, например личная аутентификация, корпоративная аутентификация, государственная аутентификация и т. д.
- Информация аутентификации: уникальна для аутентифицированных пользователей, информация аутентификации отображается в столбце информации о пользователе.
Информация Weibo
- Weibo id: уникальный логотип Weibo.
- Содержимое Weibo: текст Weibo.
- URL-адрес заголовка статьи: URL-адрес заголовка статьи в Weibo. Если в Weibo нет заголовка, значение равно ''.
- URL-адрес исходного изображения: исходное изображение Weibo и URL-адрес изображения, являющегося причиной пересылки на Weibo. Если в сообщении Weibo есть несколько изображений, каждый URL-адрес разделяется английской запятой. Если изображения нет, значение равно «. Никто"
- URL-адрес видео: URL-адрес видео в Weibo. Если видео в Weibo нет, значение «Нет».
- Место публикации на Weibo: Место публикации в Weibo.
- Время публикации Weibo: время публикации Weibo с точностью до минуты.
- Количество лайков: количество лайков на Weibo.
- Количество ретвитов: количество ретвитов на Weibo.
- Количество комментариев: количество комментариев на Weibo.
- Инструменты публикации Weibo: инструменты публикации Weibo, такие как клиент iPhone, HUAWEI Mate 20 Pro и т. д.
- Файл результата: сохраняется в папке, названной в честь ника пользователя в папке weibo текущего каталога, в форме «user_id.csv» и «user_id.txt».
- Картинки Weibo: картинки в оригинальном Weibo и картинки в причинах пересылки на Weibo сохраняются в папке img под папкой, названной по нику пользователя.
- Видео Weibo: оригинальные видеоролики на Weibo, сохраненные в папке видео в папке, названной в честь ника пользователя.
- Ставка Weibo (версия без файлов cookie): уникальна для версии без файлов cookie. Это то же значение, что и идентификатор Weibo в этой программе.
- Тема (версия без файлов cookie): тема Weibo, то есть содержимое между двумя #. Если существует несколько тем, каждый URL-адрес разделяется английской запятой. Если ее нет, значение равно ''.
- @user (версия без файлов cookie): пользователь Weibo @, если имеется несколько пользователей @, каждый URL-адрес разделяется английской запятой, в противном случае значение равно ''
- Исходный Weibo (версия без файлов cookie): уникальный для пересылаемого Weibo. Это пересылаемый Weibo в пересылаемом Weibo. Он хранится в форме словаря и содержит все содержимое вышеуказанной информации Weibo, например идентификатор Weibo, контент Weibo и т. д. .
Пример
Если вы хотите узнать конкретные результаты работы программы, вы можете просмотреть образец документа, в котором представлен пример сканирования Weibo Дилиребы и приложены несколько снимков экрана с файлами результатов.
Операционная среда
- Язык разработки: python2/python3.
- Система: Windows/Linux/macOS
Инструкция по применению
0.Версия
Существует две версии этой программы: одна, которую вы видите сейчас, — это версия python3, а другая — версия python2. Версия python2 находится в ветке python2. В настоящее время мы в основном разрабатываем версию Python3, включая разработку новых функций и исправление ошибок; версия Python2 поддерживает только исправления ошибок; Пользователям Python3 рекомендуется использовать текущую версию, а пользователям Python2 рекомендуется использовать версию Python2. Это руководство по эксплуатации предназначено для версии Python3.
1. Программа установки
Эта программа предоставляет два метода установки: один — установка из исходного кода , а другой — установка через pip , оба из которых имеют одинаковые функции. Если вам необходимо изменить исходный код, рекомендуется использовать первый способ, в противном случае вы можете выбрать любой способ установки.
Установка исходного кода
$ git clone https://github.com/dataabc/weiboSpider.git
$ cd weiboSpider
$ pip install -r requirements.txt
установка пипа
$ python3 -m pip install weibo-spider
2. Настройки программы
Чтобы узнать о настройках программы, просмотрите документацию по настройкам программы.
3. Запустите программу
Пользователи, устанавливающие исходный код, могут запускать следующие команды в каталоге weiboSpider. Пользователи, устанавливающие pip, могут запускать следующие команды в любом каталоге с разрешениями на запись.
$ python3 -m weibo_spider
При первом запуске файл конфигурации config.json будет автоматически создан в текущем каталоге. После настройки выполните ту же команду, чтобы получить Weibo.
Если у вас уже есть файл config.json, вы также можете настроить путь к config.json через параметр config_path и запустить программу. Командная строка выглядит следующим образом:
$ python3 -m weibo_spider --config_path= " config.json "
Если вы хотите указать путь сохранения файла (csv, txt, json, изображения, видео), вы можете установить его через параметр output_dir. Если вы хотите сохранить файл в каталоге /home/weibo/, вы можете запустить следующую команду:
$ python3 -m weibo_spider --output_dir= " /home/weibo/ "
Если вы хотите ввести user_id через командную строку, вы можете использовать параметр u. Вы можете ввести один или несколько user_id. Каждый user_id разделяется запятой. Если среди этих user_id есть дубликаты, программа автоматически удалит дубликаты. Командная строка выглядит следующим образом:
$ python3 -m weibo_spider --u= " 1669879400,1223178222 "
Программа получит пользователей Weibo, чьи user_id равны 1669879400 и 1223178222. Позже мы объясним, как получить user_id. Все user_ids в этом методе задаются с помощью параметров с_даты и конечной_даты в config.json, а диапазон времени сканирования можно контролировать, изменяя их значения. Если user_id_list в config.json представляет собой путь к файлу, user_id в каждой командной строке будет автоматически сохранен в файле и автоматически обновлен с момента_даты; если это не путь, user_id будет сохранен в user_id_list.txt в текущем каталоге; и автоматически обновляется с_даты, если user_id_list.txt не существует в текущем каталоге, программа автоматически создаст его.
Программа персонализации (опционально)
Этот раздел является необязательным и его можно игнорировать, если вам не требуется персонализировать программу или добавлять новые функции.
Основной код этой программы находится в файле weibo_spider.py. Основной частью программы является класс Spider. Все вышеперечисленные функции реализуются путем вызова класса Spider в основной функции. Код вызова по умолчанию следующий:
config = get_config ()
wb = Spider ( config )
wb . start () # 爬取微博信息
Пользователи могут вызывать или изменять класс Spider в соответствии со своими потребностями. Выполнив эту программу, мы можем получить много информации.
Нажмите, чтобы просмотреть подробности
- wb.user['nickname']: псевдоним пользователя;
- wb.user['gender']: пол пользователя;
- wb.user['location']: местоположение пользователя;
- wb.user['birthday']: дата рождения пользователя;
- wb.user['description']: Профиль пользователя;
- wb.user['verified_reason']: аутентификация пользователя;
- wb.user['talent']: метка пользователя;
- wb.user['education']: опыт обучения пользователей;
- wb.user['work']: опыт работы пользователя;
- wb.user['weibo_num']: номер Weibo;
- wb.user['following']: количество подписок;
- wb.user['followers']: количество поклонников;
wb.weibo : за исключением вышеуказанной информации, wb.weibo содержит всю просканированную информацию Weibo, такую как идентификатор Weibo , текст Weibo , URL-адрес исходного изображения , место публикации , время публикации , инструмент публикации , количество лайков , количество ретвитов , количество комментарии и т. д. Если вы сканируете все Weibo (исходное + пересылаемое), помимо приведенной выше информации, оно также включает URL-адрес исходного изображения пересылаемого Weibo , является ли это оригинальным Weibo и т. д. wb.weibo — это список, содержащий всю просканированную информацию Weibo. wb.weibo[0] – это первое сканирование Weibo, wb.weibo[1] – второе сканирование Weibo и так далее. Если filter=1, wb.weibo[0] — это первый исходный сайт Weibo, просканированный, и так далее. wb.weibo[0]['id'] — это идентификатор первого Weibo, wb.weibo[0]['content'] — это текст первого Weibo, wb.weibo[0]['publish_time' ] — это время публикации первого поста на Weibo, а также много другой информации, о которой я не буду вдаваться в подробности. Вы можете нажать «Подробнее» ниже, чтобы увидеть конкретное использование.
Подробности
Если целевой пользователь Weibo существует на Weibo, то:
- id: хранит идентификатор Weibo. Например, wb.weibo[0]['id'] — это идентификатор последней версии Weibo;
- контент: хранит основной текст Weibo. Например, wb.weibo[0]['content'] — это текст последней публикации Weibo;
- Article_url: хранит URL-адрес заголовка статьи в Weibo. Например, wb.weibo[0]['article_url'] — это URL-адрес последней заголовочной статьи Weibo. Если в Weibo нет заголовочной статьи, значение равно '';
- original_pictures: хранит URL-адрес исходного изображения исходного Weibo и URL-адрес изображения, указывающий причину пересылки Weibo. Например, wb.weibo[0]['original_pictures'] — это URL-адрес исходного изображения последней версии Weibo. Если в Weibo есть несколько изображений, будут сохранены несколько URL-адресов, разделенных английскими запятыми, если в Weibo нет изображений; значение «Нет»;
- retweet_pictures: сохраняет URL-адреса исходных изображений в ретвитнутом Weibo. Если последняя версия Weibo — это исходный Weibo или пересылаемый Weibo без изображений, значение равно «none», в противном случае это URL-адрес изображения пересылаемого Weibo. Если изображений несколько, будет сохранено несколько URL-адресов, разделенных запятыми;
- Publish_place: хранит место публикации Weibo. Например, wb.weibo[0]['publish_place'] — это место публикации последней версии Weibo. Если Weibo не имеет информации о местоположении, значение равно «Нет»;
- Publish_time: хранит время публикации Weibo. Например, wb.weibo[0]['publish_time'] — это время публикации последней версии Weibo;
- up_num: хранит количество лайков, полученных Weibo. Например, wb.weibo[0]['up_num'] — это количество лайков, полученных последней публикацией Weibo;
- retweet_num: хранит количество ретвитов, полученных Weibo. Например, wb.weibo[0]['retweet_num'] — это количество ретвитов, полученных последней версией Weibo;
- comment_num: хранит количество комментариев, полученных Weibo. Например, wb.weibo[0]['comment_num'] — это количество комментариев, полученных последней версией Weibo;
- Publish_tool: Инструмент публикации хранилища для Weibo. Например, wb.weibo[0]['publish_tool'] — это инструмент публикации последней версии Weibo.
Регулярно автоматически сканировать Weibo (необязательно)
Если вы хотите, чтобы программа автоматически сканировала каждый период времени, а сканируемый контент — это недавно добавленный контент (за исключением уже полученного контента Weibo), установите флажок «Регулярно сканировать Weibo автоматически».
Как получить файлы cookie
Чтобы узнать, как получить файлы cookie, ознакомьтесь с документацией по файлам cookie.
Как получить user_id
Чтобы узнать, как получить user_id, просмотрите документ user_id, в котором описывается, как получить user_id одного или нескольких пользователей Weibo.
Часто задаваемые вопросы
Если при запуске программы возникает ошибка, вы можете просмотреть страницу часто задаваемых вопросов, на которой собраны наиболее распространенные проблемы и решения. Если возникшая ошибка отсутствует в FAQ, вы можете обратиться за помощью, отправив вопрос, и мы будем рады ответить на него.
академические исследования
Этот проект получает данные Weibo для предоставления данных, необходимых для некоммерческих проектов, таких как написание статей и проведение исследований. Документы академических исследований — это проекты, в которых программа использовалась в диссертациях, исследованиях и т. д., и отображаются с разрешения владельца. Мы связались с владельцем по поводу некоторых описаний, связанных с конфиденциальностью, и в описании представлены только те части, которые владелец разрешает отображать. Если владелец какой-либо информации ранее согласился на отображение и прописал ее в документе, но теперь не желает ее отображать, вы можете сообщить мне об этом по электронной почте ([email protected]) или оставить заявку, и я удалю соответствующую информацию. информация. В то же время друзья, которые используют этот проект для написания статей или проведения других научных исследований, также могут отображать результаты своих исследований в научных исследовательских документах. Это совершенно добровольно.
Для вашего удобства записи bibtex для этого проекта представлены следующим образом:
@misc{weibospider2020,
author = {Lei Chen, Zhengyang Song, schaepher, minami9, bluerthanever, MKSP2015, moqimoqidea, windlively, eggachecat, mtuwei, codermino, duangan1},
title = {{Weibo Spider}},
howpublished = {url{https://github.com/dataabc/weiboSpider}},
year = {2020}
}
Связанные проекты
- weibo-crawler — функция точно такая же, как и в этом проекте, вы не можете добавлять файлы cookie и получать больше атрибутов Weibo;
- weibo-search — может непрерывно получать один или несколько результатов поиска по ключевым словам Weibo и записывать результаты в файл (необязательно), базу данных (необязательно) и т. д. Так называемый поиск по ключевым словам Weibo означает: поиск Weibo, который содержит указанные ключевые слова в тексте , и вы можете указать временной диапазон поиска. Для очень популярных ключевых слов можно получить более 10 миллионов результатов поиска за один день, а 10 миллионов результатов поиска XN можно получить за N дней. Для большинства ключевых слов количество соответствующих микроблогов, создаваемых в день, должно быть менее 10 миллионов, поэтому можно сказать, что программа может получить все или почти все результаты поиска по большинству ключевых слов. Более того, эта программа может получить всю информацию о результатах поиска, а информация Weibo, полученная с помощью этой программы, может быть получена с помощью этой программы.
способствовать
Добро пожаловать, чтобы внести свой вклад в этот проект. Вклад можно внести, отправив код, внося предложения (например, новые функции, планы улучшения и т. д.) через проблемы или сообщая нам об ошибках, недостатках и т. д. в проекте через проблемы. Конкретные способы внесения вклада см. в разделе «Внесите свой вклад». проект.
Автор
Спасибо всем друзьям, которые внесли свой вклад в этот проект. Подробную информацию об участниках можно найти на странице участников.
На что следует обратить внимание
- user_id не может совпадать с user_id сканера Weibo. Потому что для сканирования информации Weibo вы должны сначала войти в учетную запись Weibo. Давайте назовем этот сканер учетных записей Weibo. Когда сканер Weibo посещает свою собственную страницу и посещает страницы других пользователей, формат получаемой веб-страницы отличается, поэтому он не может сканировать собственную информацию Weibo. Если вы хотите сканировать контент сканера Weibo, вы можете обратиться к разделу «Получение собственного Weibo»; Информация;
- Файлы cookie имеют ограниченный срок действия, составляющий примерно три месяца. Если появится сообщение о том, что файл cookie неправильный или срок его действия истек, вам необходимо обновить файл cookie еще раз.