Python python爬取csdn博客內容

某一次想把博客裏的內容打印下來,但是一篇一篇去整太慢了。。。。

當時並沒有學習python

學習了python之後來實現一下。

from urllib import request
from bs4 import BeautifulSoup
import re

# 獲取 csdn 某博客的所有文章鏈接
# author Leon

def geturl(url):
    sum = 0
    s = set()
    k = input("請輸入打印前爬取前多少頁博客內容:")
    k = int(k)
    for i in range(1, k+1):
        newpage =url + "/article/list/"+str(i) + '?'
        str1 = url + "/article/details/"
        html = request.urlopen(newpage)
        bsobj = BeautifulSoup(html)
        for links in bsobj.findAll("a"):
            if 'href' in links.attrs:
                newstr = links['href']
                if re.search(r'%s[\d]*'%str1, newstr) != None:
                    if newstr not in s:
                        print(newstr)
                        s.add(newstr)
                        sum += 1
    print("爬取總共的文章:%d" % sum)


geturl("https://blog.csdn.net/weixin_40894017")

代碼很簡單,這個算是爬蟲的簡單應用吧。

基本過程就是

提取每一頁的url地址。但是有許多無用的url。關鍵在於如何過濾掉這些我們不想要的。

我們發現,博文的內容url的前綴是相同的,所以可以用正則表達式篩選出來。

用set記錄一下防止重複。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章