標籤:
經過一段時間的學習,終於入了門
先爬一個csdn 的blog練練手
整體思路是首先判斷某個blog有多少頁
然後根據頁數 去獲得相應的url
再爬出每一頁的title和對應的url
這裡使用了BeautifulSoup來解析頁面
#coding=utf-8import urllib2from bs4 import BeautifulSoupimport sysreload(sys)sys.setdefaultencoding(‘utf-8‘)def query_item(input,cla=None): ‘‘‘ 擷取對應url中 某個標籤 class的對象 ‘‘‘ soup=BeautifulSoup(input,"html.parser") if cla==None: return soup.find_all(‘div‘) else: return soup.find_all(‘div‘,class_=cla)‘‘‘http://blog.csdn.net/zhaoyl03/article/list/1‘‘‘url="http://blog.csdn.net/zhaoyl03/article/list/1"req_header = {‘Host‘:"blog.csdn.net",‘User-Agent‘:"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36",‘Accept‘:"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",‘Accept-Language‘:"zh-CN,zh;q=0.8",‘Connection‘:"keep-alive","Cache-Control":"max-age=0","Referer":"http://blog.csdn.net"}blog_art=[]i=1
#該迴圈是擷取最大頁面數,並將擷取的頁面放入一個list中while True: url="http://blog.csdn.net/zhaoyl03/article/list/" req=urllib2.Request(url+str(i),None,req_header) result = urllib2.urlopen(req,None) artcle_num=query_item(result.read(),‘list_item article_item‘) if len(artcle_num)<15: for x in artcle_num: blog_art.append(x) break else: i+=1 for x in artcle_num: blog_art.append(x)#現在得到blog的有效頁數 i 和所有的博文 blog_arthost_url=‘http://blog.csdn.net‘query_result={}for x in blog_art: for y in x.find(‘span‘,‘link_title‘): #得到所有博文的title和url query_result[str(y.get_text())]=str(host_url+y.get(‘href‘))print len(query_result)for x,y in query_result.items(): print x+‘:‘+y
結果如下:
Open source robotics toolkits: use virtual arenas to test your robotics algorithms :http://blog.csdn.net/zhaoyl03/article/details/8179441 設計模式: 觀察者模式 :http://blog.csdn.net/zhaoyl03/article/details/40223067 霍布斯:人對人像狼一樣 :http://blog.csdn.net/zhaoyl03/article/details/8158739 ChiMerge 演算法: 以鳶尾花資料集為例 :http://blog.csdn.net/zhaoyl03/article/details/8689440 用python 寫爬蟲,去爬csdn的內容,完美解決 403 Forbidden :http://blog.csdn.net/zhaoyl03/article/details/8631897 使用 Matlab 的 bvp4c 求解邊值問題 :http://blog.csdn.net/zhaoyl03/article/details/8153140 牛頓下山法 :http://blog.csdn.net/zhaoyl03/article/details/8228732 小玩意系列:增強Windows運行欄的功能 (一) :http://blog.csdn.net/zhaoyl03/article/details/8887157 UltraEdit中使用Regex替換 :http://blog.csdn.net/zhaoyl03/article/details/8432129 蘇格拉底:自知其無知 :http://blog.csdn.net/zhaoyl03/article/details/8158793 如何從一個檔案中刪除另一個檔案的重複項 :http://blog.csdn.net/zhaoyl03/article/details/8188264 向 PPT 表格中添加行或列 :http://blog.csdn.net/zhaoyl03/article/details/8156308 編程之美“字串移位包含的問題”的另一種解法 :http://blog.csdn.net/zhaoyl03/article/details/8656755 C++ 檔案結束符 :http://blog.csdn.net/zhaoyl03/article/details/8165989 MATLAB中的一些小技巧 :http://blog.csdn.net/zhaoyl03/article/details/8155941 Mathematica中清除一系列符號定義的函數 :http://blog.csdn.net/zhaoyl03/article/details/8205689 Talking about the Computational Future at SXSW 2013 :http://blog.csdn.net/zhaoyl03/article/details/8822284 Bruno Buchberger: A life devoted to symbolic computation :http://blog.csdn.net/zhaoyl03/article/details/8612627 妙用Windows“運行” :http://blog.csdn.net/zhaoyl03/article/details/8874937 MATLAB 函數控制代碼的用法 :http://blog.csdn.net/zhaoyl03/article/details/8215588 Clenshaw–Curtis quadrature :http://blog.csdn.net/zhaoyl03/article/details/8500408 有關cin.fail,cin.clear,cin.sync的應用 :http://blog.csdn.net/zhaoyl03/article/details/8167049 Visual Studio Command Window :http://blog.csdn.net/zhaoyl03/article/details/8144816 學習劄記:cin.clear(istream::failbit) :http://blog.csdn.net/zhaoyl03/article/details/8197649 BloomFilter(布隆過濾器) :http://blog.csdn.net/zhaoyl03/article/details/8653391 海量資料處理(一) :http://blog.csdn.net/zhaoyl03/article/details/8684006 資料庫和資料倉儲的區別 :http://blog.csdn.net/zhaoyl03/article/details/8655596 設計模式:單例模式 :http://blog.csdn.net/zhaoyl03/article/details/40264363 C++ typedef用法詳解 :http://blog.csdn.net/zhaoyl03/article/details/8195621 Python寫爬蟲——抓取網頁並解析HTML :http://blog.csdn.net/zhaoyl03/article/details/8631645 Ubuntu上搭建Hadoop環境(單機模式+偽分布模式) :http://blog.csdn.net/zhaoyl03/article/details/8657104 Tex中的Regex替換 :http://blog.csdn.net/zhaoyl03/article/details/8686915 常用DOS命令大全 :http://blog.csdn.net/zhaoyl03/article/details/8144856 Java的第一個程式 :http://blog.csdn.net/zhaoyl03/article/details/8457074 盧梭:人無往不在枷鎖之中 :http://blog.csdn.net/zhaoyl03/article/details/8158752 Mathematica 函數調用發生異常時停止計算 :http://blog.csdn.net/zhaoyl03/article/details/8191083 阿達(Ada Lovelace) :http://blog.csdn.net/zhaoyl03/article/details/8279768 學習劄記: C++指向字元數組的指標 :http://blog.csdn.net/zhaoyl03/article/details/8274575 小玩意系列:增強Windows運行欄的功能 (二) :http://blog.csdn.net/zhaoyl03/article/details/8887724 Python 排序 :http://blog.csdn.net/zhaoyl03/article/details/8683091 使用Python實現Hadoop MapReduce程式 :http://blog.csdn.net/zhaoyl03/article/details/8657031 數學之美番外篇:平凡而又神奇的貝葉斯方法 :http://blog.csdn.net/zhaoyl03/article/details/8655464 製作網頁訪問者的地圖 :http://blog.csdn.net/zhaoyl03/article/details/8531409 C++的atof() :http://blog.csdn.net/zhaoyl03/article/details/8176387 資料採礦學習劄記:KNN演算法(二) :http://blog.csdn.net/zhaoyl03/article/details/8679256 資料採礦學習劄記:ID3演算法(一) :http://blog.csdn.net/zhaoyl03/article/details/8665663 C/C++編譯器-cl.exe的命令選項 :http://blog.csdn.net/zhaoyl03/article/details/8144675 Excel表格乘法函數公式 :http://blog.csdn.net/zhaoyl03/article/details/8208537 使用 windbg 分析 minidump :http://blog.csdn.net/zhaoyl03/article/details/8217337 優秀asp.net程式員修鍊之路 :http://blog.csdn.net/zhaoyl03/article/details/8456466 在 CSDN 網頁上插入數學公式 :http://blog.csdn.net/zhaoyl03/article/details/8153608 使用Chebfun求解Blasius方程(二) :http://blog.csdn.net/zhaoyl03/article/details/8266419 Python與簡單網路爬蟲的編寫 :http://blog.csdn.net/zhaoyl03/article/details/8631928 [學者筆談]史佔中:大國崛起:從中國製造到中國智造 :http://blog.csdn.net/zhaoyl03/article/details/8177741 關於Mathematica系統通訊機制MathLink的研究 :http://blog.csdn.net/zhaoyl03/article/details/8181690 Physicists Discover a Whopping 13 New Solutions to Three-Body Problem :http://blog.csdn.net/zhaoyl03/article/details/8822310 如何利用Mathematica調用C編寫的函數 :http://blog.csdn.net/zhaoyl03/article/details/8181706 小玩意系列:Python調用Google翻譯 :http://blog.csdn.net/zhaoyl03/article/details/8830806 初窺Applet :http://blog.csdn.net/zhaoyl03/article/details/8810940 查爾斯·巴貝奇——電腦先驅者之父 :http://blog.csdn.net/zhaoyl03/article/details/8279940 Lobatto quadrature :http://blog.csdn.net/zhaoyl03/article/details/8155438 Matlab 中輸入希臘字母 :http://blog.csdn.net/zhaoyl03/article/details/8147696 EXCEL如何設定列印範圍 :http://blog.csdn.net/zhaoyl03/article/details/8144595 批處理for命令詳解 :http://blog.csdn.net/zhaoyl03/article/details/8886067 sizeof :http://blog.csdn.net/zhaoyl03/article/details/9090639 cin.get,cin.clear以及cin.sync :http://blog.csdn.net/zhaoyl03/article/details/8167024 資料採礦學習劄記:KNN演算法(一) :http://blog.csdn.net/zhaoyl03/article/details/8666906 Chebyshev 展開 :http://blog.csdn.net/zhaoyl03/article/details/8494474 Python yield :http://blog.csdn.net/zhaoyl03/article/details/8683936 蘇格拉底:“認識你自己” :http://blog.csdn.net/zhaoyl03/article/details/8158812 cin.get()、流和緩衝區 :http://blog.csdn.net/zhaoyl03/article/details/8165889 C++使用system帶參數調用exe :http://blog.csdn.net/zhaoyl03/article/details/8176699 資料採礦學習劄記:KNN演算法(三) :http://blog.csdn.net/zhaoyl03/article/details/8679378 學習劄記: C++指向函數的指標 :http://blog.csdn.net/zhaoyl03/article/details/8195922 OpenCL開發案例學習 :http://blog.csdn.net/zhaoyl03/article/details/8517369 使用Chebfun求解Blasius方程(一) :http://blog.csdn.net/zhaoyl03/article/details/8263627 在網頁上嵌入搜尋和訪問計數器 :http://blog.csdn.net/zhaoyl03/article/details/8524693 Shanks transformation :http://blog.csdn.net/zhaoyl03/article/details/8607019[Finished in 2.5s]
python 爬蟲學習筆記1