簡單爬蟲爬取微博數(shù)據(jù)(二)

昨天呢講了如何通過一個最基本的爬蟲來抓取單個頁面上的數(shù)據(jù),但這樣我們肯定是不能滿足的,比如我們想要抓取一個人的所有微博的數(shù)據(jù),那怎么辦呢?我們不能手動的去點擊“下一頁”,我們肯定需要程序來幫我們做這件事情,所以我們今天的重點就是如何通過程序?qū)崿F(xiàn)自動的跳轉(zhuǎn)頁面爬取數(shù)據(jù)。

Step1

? ? ?首先要做的前期準備工作,其實是針對新浪微博的特點,由于新浪一定要登陸的用戶才能點擊下一頁,不然只能看到第一頁的內(nèi)容,所以我們要模擬登陸。不過之前網(wǎng)上看到的其他模擬登陸的方法都太過復雜了,而且會隨著某浪自己改登陸加密方法而改動,很是不方便,所以我們用cookie的方式來登陸。

? ? ? 首先我們要找到自己在新浪微博的cookie,仍然是登陸手機版,然后在safari中點擊檢查元素,來檢查cookie,查找到了weibo.cn的很多cookie,具體該用哪一個呢?這個...我的解決方法是都記下來傳給瀏覽器,總有一個是有用的。

cookie

找到自己的cookie以后的方法就簡單多了。首先我們要用一個dict把所有的cookie記錄下來

headers = {'gsid_CTandWM':'your cookie'}

然后在發(fā)出請求中加入你的cookie

yield Request("http://weibo.cn/xiena",cookies=headers, callback=self.parse)

這樣就可以成功登陸啦

一定要注意的是,要重寫class的start_requests方法,這樣才能自定義初始訪問狀態(tài),不然默認的狀態(tài)是不會提交cookie的。

Step2

接下來是我們的自動跳轉(zhuǎn)部分,實現(xiàn)自動跳轉(zhuǎn)用的也是request方法,具體實現(xiàn),就是像上一章一樣,用xpath找到要跳轉(zhuǎn)的鏈接,首先要分析html文件


html文件

這次我們用的是娜姐的微博,可以看到這個地方的href屬性就是我們需要找的跳轉(zhuǎn)鏈接了,用上次的方法把它提取出來

item['ids'] = sel.xpath('form/div/a/@href').extract()

然后用request方法跳轉(zhuǎn),跳轉(zhuǎn)的時候需要注意加上cookie,同時,item['ids']是一個list,所以要遍歷它

for st in item['ids']:

? ? ? ?st = "http://weibo.cn"+st

? ? ? ?req = Request(url = st,cookies = headers, callback = self.parse)

? ? ? ?yield req

這樣以后,再運行我們的小爬蟲,就可以看到它不斷的自動翻頁爬取內(nèi)容啦~

總結

爬蟲小程序到現(xiàn)在已經(jīng)初步可以運行了,那么下一步就應該考慮優(yōu)化細節(jié),比如調(diào)整爬蟲的爬取時間間隔,避免被封賬號之類的事情0.0,然后要考慮如何優(yōu)化爬蟲的性能,同時考慮同時運行多個爬蟲,分布式工作的方法。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,094評論 25 709
  • 1 前言 作為一名合格的數(shù)據(jù)分析師,其完整的技術知識體系必須貫穿數(shù)據(jù)獲取、數(shù)據(jù)存儲、數(shù)據(jù)提取、數(shù)據(jù)分析、數(shù)據(jù)挖掘、...
    whenif閱讀 18,313評論 45 523
  • 1. 概覽 體驗人:Rebecca 體驗時間:2013年 9月 1 日 -- 2017年 6月 22 日 體驗產(chǎn)品...
    Rebecca卡姐閱讀 16,926評論 3 17
  • 2017年6月4日 星期日 晴 五年級二班 崔津愷媽媽(親子日記第二十八天) 今天給兒子檢查作業(yè),發(fā)現(xiàn)有兩個題...
    豆瓣兒_b63d閱讀 199評論 0 0

友情鏈接更多精彩內(nèi)容