웨이보 스파이더
이 프로그램은 한 명 이상의 Sina Weibo 사용자(예: Hu Ge, Dilraba, Guo Biting)의 데이터를 지속적으로 크롤링하고 결과 정보를 파일 이나 데이터베이스 에 기록할 수 있습니다. 서면 정보에는 사용자 정보 와 Weibo 정보라는 두 가지 범주를 포함하여 사용자 Weibo의 거의 모든 데이터가 포함됩니다. 내용이 너무 많아서 여기서는 자세히 다루지 않겠습니다. 자세한 내용은 가져온 필드를 참조하세요. 사용자 정보만 필요한 경우에는 Weibo 사용자 정보만 크롤링하도록 기능을 설정할 수 있습니다. 이 프로그램은 Weibo에 액세스하려면 쿠키를 설정해야 합니다. 쿠키를 얻는 방법은 나중에 설명하겠습니다. 쿠키 설정을 원하지 않으시면 유사한 기능을 갖춘 쿠키 프리 버전을 사용하실 수 있습니다.
크롤링 결과는 파일 및 데이터베이스에 기록될 수 있습니다. 구체적인 쓰기 파일 유형은 다음과 같습니다.
- txt 파일 (기본값)
- csv 파일 (기본값)
- json 파일 (선택사항)
- MySQL 데이터베이스 (선택사항)
- MongoDB 데이터베이스 (선택사항)
- SQLite 데이터베이스 (선택사항)
또한 Weibo에서 사진 및 비디오 다운로드를 지원합니다. 다운로드 가능한 특정 파일은 다음과 같습니다.
- 원본 Weibo의 원본 사진 (선택 사항)
- Weibo의 원본 사진을 다시 게시하세요 (선택 사항).
- Weibo의 원본 동영상 (선택 사항)
- Weibo에 동영상 다시 게시 (선택사항)
- 원본 Weibo Live Photo 의 동영상 (쿠키 없는 버전에만 해당)
- Weibo Live Photo 에서 동영상 다시 게시 (쿠키 없는 버전에만 해당)
컨텐츠 목록
[목차]
- 웨이보 스파이더
- 컨텐츠 목록
- 획득한 필드
- 예
- 운영 환경
- 사용 지침
- 0.버전
- 1. 설치 프로그램
- 2. 프로그램 설정
- 3. 프로그램 실행
- 개인화 프로그램(선택사항)
- 정기적으로 Weibo를 자동으로 크롤링합니다(선택 사항).
- 쿠키를 얻는 방법
- user_id를 얻는 방법
- FAQ
- 학술 연구
- 관련 프로젝트
- 기여하다
- 기부자
- 주의할 점
획득한 필드
이 섹션은 크롤링된 필드 정보에 대한 설명입니다. 쿠키가 없는 버전과 구별하기 위해 두 가지 모두에서 크롤링되는 정보가 아래에 나열되어 있습니다. 해당 정보가 쿠키 없는 버전에만 고유한 정보인 경우 쿠키 없음으로 표시되며, 표시되지 않은 정보는 두 버전 모두에 공통됩니다.
사용자 정보
- 사용자 ID: "1669879400"과 같은 Weibo 사용자 ID입니다. 실제로 이 필드는 알려진 필드입니다.
- 닉네임 : "Dear-Dilraba"와 같은 사용자 닉네임
- 성별: 웨이보 사용자의 성별
- 생일: 사용자의 생년월일
- 위치: 사용자 위치
- 학습경험 : 이용자가 재학하던 학교명 및 시간
- 근무경력 : 이용자의 회사명 및 근무시간
- 선샤인 크레딧(쿠키 없는 버전): 사용자의 선샤인 크레딧
- 웨이보 등록 시간(쿠키 없는 버전): 사용자의 웨이보 등록 날짜
- 웨이보 수: 사용자의 전체 웨이보 수(리트윗된 웨이보 + 원본 웨이보)
- 팔로어 수: 사용자가 팔로우하는 웨이보 게시물 수
- 팬 수: 사용자의 팬 수
- 소개: 사용자 프로필
- 홈페이지 주소(쿠키 없는 버전): 웨이보 모바일 버전 홈페이지 URL
- 아바타 URL(쿠키 없는 버전): 사용자 아바타 URL
- 고화질 아바타 URL(쿠키 없는 버전): 사용자 고화질 아바타 URL
- 웨이보 수준(쿠키 없는 버전): 사용자 웨이보 수준
- 회원 등급(쿠키 프리 버전): 웨이보 회원 사용자 등급, 일반 사용자 등급은 0입니다.
- 인증 여부(쿠키 프리 버전): 사용자 인증 여부, Boolean 유형
- 인증유형(쿠키프리버전) : 개인인증, 기업인증, 정부인증 등 사용자 인증 유형
- 인증정보 : 인증된 사용자에게 고유하며, 사용자 정보란에 표시되는 인증정보
웨이보 정보
- 웨이보 아이디(Weibo id): 웨이보의 고유한 로고
- 웨이보 콘텐츠: 웨이보 텍스트
- 헤드라인 기사 url: 웨이보의 헤드라인 기사 URL입니다. 웨이보에 헤드라인 기사가 없는 경우 값은 ''입니다.
- 원본 이미지 URL: 웨이보 원본 이미지와 웨이보를 전달하는 이유에 있는 이미지의 URL입니다. 웨이보 게시물에 여러 이미지가 있는 경우 각 URL은 영문 쉼표로 구분됩니다. 없음"
- 동영상 URL: Weibo의 동영상 URL입니다. Weibo에 동영상이 없는 경우 값은 "None"입니다.
- 웨이보 게시 위치: 웨이보 게시 위치
- 웨이보 게시 시간: 웨이보가 게시된 시간, 분 단위까지 정확함
- 좋아요 수: 웨이보 좋아요 수
- 리트윗 수: 웨이보에서 리트윗된 수
- 댓글 수: 웨이보에 달린 댓글 수
- Weibo 게시 도구: iPhone 클라이언트, HUAWEI Mate 20 Pro 등과 같은 Weibo 게시 도구
- 결과 파일 : 현재 디렉터리의 weibo 폴더 내 사용자 닉네임 이름의 폴더에 "user_id.csv", "user_id.txt" 형식으로 저장
- 웨이보 사진: 원본 웨이보에 있는 사진과 웨이보에 전달하는 이유에 있는 사진은 사용자의 닉네임 폴더 아래 img 폴더에 저장됩니다.
- 웨이보 동영상: 웨이보의 원본 동영상으로, 사용자 닉네임 폴더 아래의 동영상 폴더에 저장됩니다.
- 웨이보 입찰(쿠키 없는 버전): 쿠키 없는 버전에만 해당되며 이 프로그램의 웨이보 ID와 동일한 값입니다.
- 주제(쿠키 없는 버전): 웨이보 주제, 즉 두 # 사이의 내용입니다. 주제가 여러 개인 경우 각 URL은 영문 쉼표로 구분됩니다.
- @user(쿠키 없는 버전): Weibo @user, @사용자가 여러 명일 경우 각 URL은 영문 쉼표로 구분되며, 그렇지 않은 경우 값은 ''
- 원본 Weibo(쿠키 없는 버전): 전달된 Weibo에 고유한 것입니다. 전달된 Weibo에서 사전 형태로 저장되며 Weibo ID, Weibo 내용 등 위의 Weibo 정보에 대한 모든 내용이 포함되어 있습니다. .
예
프로그램의 구체적인 실행 결과를 알고 싶다면 딜리레바의 웨이보 크롤링 예를 소개하고 결과 파일의 일부 스크린샷을 첨부한 샘플 문서를 보면 된다.
운영 환경
- 개발 언어: python2/python3
- 시스템: 윈도우/리눅스/macOS
사용 지침
0.버전
이 프로그램에는 두 가지 버전이 있습니다. 지금 보이는 버전은 python3 버전이고, 다른 버전은 python2 버전입니다. 현재 우리는 새로운 기능 개발 및 버그 수정을 포함하여 python3 버전을 주로 개발하고 있습니다. python2 버전은 버그 수정만 지원합니다. python3 사용자는 최신 버전을 사용하는 것이 좋으며, python2 사용자는 python2 버전을 사용하는 것이 좋습니다.
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_path 매개변수를 통해 config.json 경로를 구성하고 프로그램을 실행할 수도 있습니다. 명령줄은 다음과 같습니다.
$ python3 -m weibo_spider --config_path= " config.json "
파일(csv, txt, json, picture, video) 저장 경로를 지정하고 싶다면, output_dir 매개변수를 통해 설정하면 됩니다. 파일을 /home/weibo/ 디렉터리에 저장하려면 다음 명령을 실행하면 됩니다.
$ python3 -m weibo_spider --output_dir= " /home/weibo/ "
명령줄을 통해 user_id를 입력하려면 u 매개변수를 사용할 수 있습니다. 하나 이상의 user_id를 입력할 수 있습니다. 각 user_id는 쉼표로 구분됩니다. 이러한 user_id 중에 중복된 user_id가 있으면 프로그램이 자동으로 중복 항목을 제거합니다. 명령줄은 다음과 같습니다.
$ python3 -m weibo_spider --u= " 1669879400,1223178222 "
프로그램은 user_id가 1669879400 및 1223178222인 Weibo 사용자를 얻습니다. user_id를 얻는 방법은 나중에 설명하겠습니다. 이 메소드의 모든 user_id는 config.json의 Since_date 및 end_date를 사용하여 설정되며 해당 값을 수정하여 크롤링 시간 범위를 제어할 수 있습니다. config.json의 user_id_list가 파일 경로인 경우 각 명령줄의 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['생일']: 사용자의 생년월일;
- wb.user['description']: 사용자 프로필;
- wb.user['verified_reason']: 사용자 인증;
- wb.user['talent']: 사용자 라벨;
- wb.user['education']: 사용자 학습 경험;
- wb.user['work']: 사용자 작업 경험;
- wb.user['weibo_num']: 웨이보 번호;
- wb.user['following']: 팔로잉 수;
- wb.user['followers']: 팬 수;
wb.weibo : 위의 정보를 제외하고 wb.weibo에는 Weibo ID , Weibo 텍스트 , 원본 이미지 URL , 게시 위치 , 게시 시간 , 게시 도구 , 좋아요 수 , 리트윗 수 , 리트윗 수 등 크롤링된 모든 Weibo 정보가 포함되어 있습니다. 댓글 등 모든 웨이보(원본 + 전달)를 크롤링하는 경우 위 정보 외에 전달된 웨이보의 원본 이미지 URL , 원본 웨이보인지 여부 등도 포함됩니다. wb.weibo는 크롤링된 모든 Weibo 정보를 포함하는 목록입니다. wb.weibo[0]는 첫 번째 Weibo가 크롤링되고, wb.weibo[1]은 두 번째 Weibo가 크롤링되는 식입니다. filter=1이면 wb.weibo[0]가 크롤링된 최초 의 원래 Weibo입니다. wb.weibo[0]['id']는 첫 번째 Weibo의 ID이고, wb.weibo[0]['content']는 첫 번째 Weibo의 텍스트이고, wb.weibo[0]['publish_time' ]은 첫 번째 Weibo 게시물의 게시 시간 외에 자세한 내용은 다루지 않겠지만 자세한 내용은 아래의 '세부정보'를 클릭하여 확인할 수 있습니다.
세부
대상 Weibo 사용자가 Weibo에 존재하는 경우:
- id: 웨이보 ID를 저장합니다. 예를 들어, wb.weibo[0]['id']는 최신 Weibo의 ID입니다.
- 내용: 웨이보의 본문을 저장합니다. 예를 들어, wb.weibo[0]['content']는 최신 Weibo 게시물의 텍스트입니다.
- Article_url: 웨이보의 헤드라인 기사 URL을 저장합니다. 예를 들어 wb.weibo[0]['article_url']은 최신 Weibo 헤드라인 기사의 URL입니다. Weibo에 헤드라인 기사가 없는 경우 값은 ''입니다.
- original_pictures: 웨이보 원본 사진 URL과 웨이보를 전달하는 이유에 있는 사진 URL을 저장합니다. 예를 들어, wb.weibo[0]['original_pictures']는 최신 Weibo의 원본 사진 URL입니다. Weibo에 사진이 여러 장 있으면 여러 URL이 저장되며, Weibo에 사진이 없으면 영어 쉼표로 구분됩니다. 값은 "없음"입니다.
- retweet_pictures: 리트윗된 웨이보에 원본 사진 URL을 저장합니다. 최신 웨이보가 원본 웨이보이거나 사진이 없는 전달된 웨이보인 경우 값은 "none"이고, 그렇지 않은 경우 전달된 웨이보의 이미지 URL입니다. 사진이 여러 개인 경우 여러 URL이 쉼표로 구분되어 저장됩니다.
- 게시_장소: 웨이보 게시 위치를 저장합니다. 예를 들어 wb.weibo[0]['publish_place']는 최신 Weibo의 게시 위치입니다. Weibo에 위치 정보가 없으면 값은 "None"입니다.
- 게시_시간: 웨이보 게시 시간을 저장합니다. 예를 들어 wb.weibo[0]['publish_time']은 최신 Weibo의 게시 시간입니다.
- up_num: 웨이보에서 얻은 좋아요 수를 저장합니다. 예를 들어, wb.weibo[0]['up_num']은 최신 Weibo 게시물에서 얻은 좋아요 수입니다.
- retweet_num: 웨이보에서 얻은 리트윗 수를 저장합니다. 예를 들어 wb.weibo[0]['retweet_num']은 최신 Weibo에서 받은 리트윗 수입니다.
- comment_num: 웨이보에서 얻은 댓글 수를 저장합니다. 예를 들어 wb.weibo[0]['comment_num']은 최신 Weibo에 수신된 댓글 수입니다.
- 게시_도구: Weibo용 스토리지 게시 도구입니다. 예를 들어 wb.weibo[0]['publish_tool']은 최신 Weibo용 게시 도구입니다.
정기적으로 Weibo를 자동으로 크롤링합니다(선택 사항).
프로그램이 매 기간마다 자동으로 크롤링하기를 원하고 크롤링된 콘텐츠가 새로 추가된 콘텐츠(이미 획득한 Weibo 제외)인 경우 정기적으로 Weibo 자동 크롤링을 선택하세요.
쿠키를 얻는 방법
쿠키를 얻는 방법을 알아보려면 쿠키 설명서를 확인하세요.
user_id를 얻는 방법
user_id를 얻는 방법을 알아보려면 한 명 이상의 Weibo 사용자의 user_id를 얻는 방법을 설명하는 user_id 문서를 참조하세요.
FAQ
프로그램 실행 중 오류가 발생하면 가장 일반적인 문제와 해결 방법이 포함된 FAQ 페이지를 볼 수 있습니다. 발생하는 오류가 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 - 기능은 이 프로젝트와 완전히 동일합니다. 쿠키를 추가할 수 없으며 더 많은 Weibo 속성을 얻을 수 없습니다.
- weibo-search - 하나 이상의 Weibo 키워드 검색 결과를 지속적으로 얻고 결과를 파일(선택 사항), 데이터베이스(선택 사항) 등에 쓸 수 있습니다. 소위 웨이보 키워드 검색이란 텍스트에 지정된 키워드가 포함된 웨이보를 검색 하고 검색 시간 범위를 지정할 수 있음을 의미합니다. 매우 인기 있는 키워드의 경우 하루에 1,000만 개 이상의 검색 결과를 얻을 수 있으며, N일 동안 1,000만 개의 XN 검색 결과를 얻을 수 있습니다. 대부분의 키워드의 경우 하루에 생성되는 해당 마이크로블로그의 수는 1,000만 개 미만이어야 하므로 프로그램이 대부분의 키워드에 대한 전체 또는 거의 모든 검색 결과를 얻을 수 있다고 말할 수 있습니다. 게다가 이 프로그램은 검색결과의 모든 정보를 얻을 수 있고, 이 프로그램으로 얻은 웨이보 정보도 이 프로그램으로 얻을 수 있습니다.
기여하다
이 프로젝트에 참여하신 것을 환영합니다. 기여는 코드 제출, 이슈를 통한 제안(새로운 기능, 개선 계획 등), 이슈를 통한 프로젝트의 버그, 단점 등에 대해 알려주는 방식으로 이루어질 수 있습니다. 구체적인 기여 방법은 기여하기를 참조하세요. 프로젝트.
기부자
이 프로젝트에 기여한 모든 친구들에게 감사드립니다. 기여자에 대한 자세한 내용은 기여자 페이지를 참조하세요.
주의할 점
- user_id는 크롤러 Weibo의 user_id일 수 없습니다. Weibo 정보를 크롤링하려면 먼저 Weibo 계정에 로그인해야 하기 때문에 이 계정 크롤러 Weibo를 호출하겠습니다. 크롤러 Weibo가 자신의 페이지를 방문하고 다른 사용자의 페이지를 방문할 때 획득한 웹 페이지의 형식이 다르기 때문에 자체 Weibo 정보를 크롤링할 수 없습니다. 크롤러 Weibo 콘텐츠를 크롤링하려면 자신의 Weibo 얻기를 참조하세요. 정보;
- 쿠키의 만료일은 약 3개월로 제한되어 있습니다. 쿠키가 잘못되었거나 만료되었다는 메시지가 나타나면 쿠키를 다시 업데이트해야 합니다.