python 爬蟲學習筆記1

來源:互聯網
上載者:User

標籤:

經過一段時間的學習,終於入了門

先爬一個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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.