天天看點

Python爬蟲模拟登入的github項目

DecryptLogin

項目位址:

https://github.com/CharlesPikachu/DecryptLogin

項目中文文檔:

https://httpsgithubcomcharlespikachudecryptlogin.readthedocs.io/zh/latest/

Support List:

Websites support PC API? support mobile API? in Chinese
weibo 新浪微網誌
douban 豆瓣
github Github
music163 網易雲音樂
zt12306 中國鐵路12306
QQZone QQ空間
QQQun QQ群
QQId 我的QQ中心
zhihu 知乎
bilibili B站
toutiao 今日頭條
taobao 淘寶
jingdong 京東
ifeng 鳳凰網
sohu 搜狐
zgconline 中關村線上
lagou 拉勾網
twitter 推特
Vultr Vultr
eSurfing 天翼
renren 人人網
w3cschool W3Cschool(程式設計獅)
fishc 魚C論壇
youdao 有道
baidupan 百度網盤
stackoverflow stackoverflow

Some Cases by Using DecryptLogin:

Name Introduction code in Chinese
weiboMonitor click click 微網誌監控
QQReport click click 生成QQ個人專屬報告
bilibiliDownloadUserVideos click click 下載下傳B站指定UP主的所有視訊
NeteaseSongListDownloader click click 網易雲個人歌單下載下傳器
NeteaseListenLeaderboard click click 網易雲個人聽歌排行榜
userWeiboSpider click click 下載下傳指定微網誌使用者的所有微網誌資料
NeteaseSignin click click 網易雲音樂自動簽到
weiboEmoji click click 微網誌表情包爬取
weiboSender click click 大吼一聲發微網誌

Install

Pip install

run "pip install DecryptLogin"      

Source code install

(1) Offline
Step1: git clone https://github.com/CharlesPikachu/DecryptLogin.git
Step2: cd DecryptLogin -> run "python setup.py install"
(2) Online
run "pip install git+https://github.com/CharlesPikachu/DecryptLogin.git@master"      

Quick Start

from DecryptLogin import login
lg = login.Login()
infos_return, session = lg.douban(username[telephone], password, \'pc\')
infos_return, session = lg.github(username[email], password, \'pc\')
infos_return, session = lg.weibo(username[telephone], password, \'mobile\')
infos_return, session = lg.music163(username[telephone/email], password, \'pc\')
infos_return, session = lg.zt12306(username[telephone], password, \'pc\')
infos_return, session = lg.QQZone(\'mobile\')
infos_return, session = lg.QQQun(\'mobile\')
infos_return, session = lg.QQId(\'mobile\')
infos_return, session = lg.zhihu(username, password, \'pc\')
infos_return, session = lg.bilibili(username, password, \'pc\')
infos_return, session = lg.toutiao(username, password, \'mobile\')
infos_return, session = lg.taobao(\'pc\')
infos_return, session = lg.jingdong(\'pc\')
infos_return, session = lg.ifeng(username, password, \'pc\')
infos_return, session = lg.sohu(username, password, \'mobile\')
infos_return, session = lg.zgconline(username, password, \'pc\')
infos_return, session = lg.lagou(username, password, \'pc\')
infos_return, session = lg.twitter(username, password, \'pc\')
infos_return, session = lg.vultr(username, password, \'pc\')
infos_return, session = lg.eSurfing(username, password, \'pc\')
infos_return, session = lg.renren(username, password, \'pc\')
infos_return, session = lg.w3cschool(username, password, \'pc\')
infos_return, session = lg.fishc(username, password, \'pc\')
infos_return, session = lg.youdao(username, password, \'pc\')
infos_return, session = lg.baidupan(username, password, \'pc\')
infos_return, session = lg.stackoverflow(username, password, \'pc\')      

Website login model

收集了一些各大網站登陸方式, 和一些網站的爬蟲程式,有的是通過selenium登入,有的是通過抓包直接模拟登入,有的是利用scrapy,希望對小白有所幫助,本項目用于研究和分享各大網站的模拟登陸方式,和爬蟲程式,會持續更新。。。

About

模拟登陸基本采用的是直接登入或者使用selenium+webdriver的方式,有的網站直接登入難度很大,比如qq空間,bilibili等如果采用selenium就相對輕松一些。

雖然在登入的時候采用的是selenium,為了效率,我們可以在登入過後得到的cookie維護起來,然後調用requests或者scrapy等進行資料采集,這樣資料采集的速度可以得到保證。

Completed

  •  Facebook
  •  微網誌網頁版
  •  知乎
  •  QQZone
  •  CSDN
  •  淘寶-接口修複完成-可用
  •  CSDN--已重構
  •  Baidu
  •  果殼
  •  JingDong 模拟登入和自動申請京東試用
  •  163mail
  •  拉鈎
  •  Bilibili
  •  豆瓣
  •  豆瓣spider
  •  Baidu
  •  獵聘網
  •  微信網頁版登入并擷取好友清單
  •  Github
  •  爬取圖蟲相應的圖檔
  •  網易雲音樂
  •  糗事百科--改為協程版
  •  百度貼吧spider
  •  百度翻譯

catalogue

  •  Facebook模拟登入
  •  微網誌網頁版模拟登入
  •  知乎模拟登入
  •  QQZone模拟登入
  •  CSDN模拟登入--已恢複
  •  淘寶爬蟲--重構中
  •  Baidu模拟登入一
  •  果殼爬蟲程式
  •  JingDong 模拟登入和自動申請京東試用
  •  163mail--已恢複
  •  拉鈎模拟登入--已失效
  •  Bilibili模拟登入
  •  豆瓣
  •  Baidu2模拟登入
  •  獵聘網模拟登入
  •  微信網頁版登入并擷取好友清單
  •  Github模拟登入兩種解決方案都可行
  •  爬取圖蟲想要的圖檔
  •  網易雲音樂downloader
  •  糗事百科爬蟲
  •  淘寶登陸-通路

Test

Please touch here to view test images

Informations

  • 為感謝你們的支援,準備寫一套免費爬蟲的教程,保證你學會以後可以爬取市面上大部分的網站,教程位址

一些爬蟲代碼

1.微信公衆号爬蟲

GitHub:github.com/Chyroc/Wech…

基于搜狗微信搜尋的微信公衆号爬蟲接口,可以擴充成基于搜狗搜尋的爬蟲,傳回結果是清單,每一項均是公衆号具體資訊字典。

2.豆瓣讀書爬蟲

GitHub:github.com/lanbing510/…

可以爬下豆瓣讀書标簽下的所有圖書,按評分排名依次存儲,存儲到Excel中,可友善大家篩選搜羅,比如篩選評價人數>1000的高分書籍;可依據不同的主題存儲到Excel不同的Sheet ,采用User Agent僞裝為浏覽器進行爬取,并加入随機延時來更好的模仿浏覽器行為,避免爬蟲被封。

3.知乎爬蟲

GitHub:github.com/LiuRoy/zhih…

此項目的功能是爬取知乎使用者資訊以及人際拓撲關系,爬蟲架構使用scrapy,資料存儲使用mongo

4.Bilibili使用者爬蟲

GitHub:github.com/airingursb/…

總資料數:20119918,抓取字段:使用者id,昵稱,性别,頭像,等級,經驗值,粉絲數,生日,位址,注冊時間,簽名,等級與經驗值等。抓取之後生成B站使用者資料報告。

5.新浪微網誌爬蟲

GitHub:github.com/LiuXingMing…

主要爬取新浪微網誌使用者的個人資訊、微網誌資訊、粉絲和關注。代碼擷取新浪微網誌Cookie進行登入,可通過多賬号登入來防止新浪的反扒。主要使用 scrapy 爬蟲架構。

6.小說下載下傳分布式爬蟲

GitHub:github.com/gnemoug/dis…

使用scrapy,Redis, MongoDB,graphite實作的一個分布式網絡爬蟲,底層存儲MongoDB叢集,分布式使用Redis實作,爬蟲狀态顯示使用graphite實作,主要針對一個小說站點。

7.中國知網爬蟲

GitHub:github.com/yanzhou/Cnk…

設定檢索條件後,執行src/CnkiSpider.py抓取資料,抓取資料存儲在/data目錄下,每個資料檔案的第一行為字段名稱。

8.鍊家網爬蟲

GitHub:github.com/lanbing510/…

爬取北京地區鍊家曆年二手房成交記錄。涵蓋鍊家爬蟲一文的全部代碼,包括鍊家模拟登入代碼。

9.京東爬蟲

GitHub:github.com/taizilongxu…

基于scrapy的京東網站爬蟲,儲存格式為csv。

10.QQ 群爬蟲

GitHub:github.com/caspartse/Q…

批量抓取 QQ 群資訊,包括群名稱、群号、群人數、群主、群簡介等内容,最終生成 XLS(X) / CSV 結果檔案。

11.烏雲爬蟲

GitHub:github.com/hanc00l/woo…

烏雲公開漏洞、知識庫爬蟲和搜尋。全部公開漏洞的清單和每個漏洞的文本内容存在MongoDB中,大概約2G内容;如果整站爬全部文本和圖檔作為離線查詢,大概需要10G空間、2小時(10M電信帶寬);爬取全部知識庫,總共約500M空間。漏洞搜尋使用了Flask作為web server,bootstrap作為前端。

12.hao123網站爬蟲

GitHub:github.com/buckyrobert…

以hao123為入口頁面,滾動爬取外鍊,收集網址,并記錄網址上的内鍊和外鍊數目,記錄title等資訊,windows7 32位上測試,目前每24個小時,可收集資料為10萬左右。

13.機票爬蟲(去哪兒和攜程網)

GitHub:github.com/fankcoder/f…

Findtrip是一個基于Scrapy的機票爬蟲,目前整合了國内兩大機票網站(去哪兒 + 攜程)。

14.基于requests、MySQLdb、torndb的網易用戶端内容爬蟲

GitHub:github.com/leyle/163sp…

15.豆瓣電影、書籍、小組、相冊、東西等爬蟲集

GitHub:github.com/fanpei91/do…

16.QQ空間爬蟲

GitHub:github.com/LiuXingMing…

包括日志、說說、個人資訊等,一天可抓取 400 萬條資料。

17.百度mp3全站爬蟲,使用redis支援斷點續傳。

GitHub:github.com/Shu-Ji/baid…

18.淘寶和天貓的爬蟲

GitHub:github.com/pakoo/tbcra…

可以根據搜尋關鍵詞,物品id來抓去頁面的資訊,資料存儲在mongodb。

19.一個股票資料(滬深)爬蟲和選股政策測試架構

GitHub:github.com/benitoro/st…

根據標明的日期範圍抓取所有滬深兩市股票的行情資料。支援使用表達式定義選股政策。支援多線程處理。儲存資料到JSON檔案、CSV檔案。