python爬蟲爬取csdn部落格專家所有部落格內容
python爬蟲爬取csdn部落格專家所有部落格內容:
全部過程採取自動識別與抓取,抓取結果是將一個博主的所有 文章存放在以其名字命名的檔案內,程式碼如下
#coding:utf-8
import urllib2
from bs4 import BeautifulSoup
import os
import re
#import sys
#reload(sys)
#sys.setdefaultencoding("utf-8")
def getPage(href): #偽裝成瀏覽器登陸,獲取網頁原始碼
headers = {
'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'
}
req = urllib2.Request(
url = href ,
headers = headers
)
try:
post = urllib2.urlopen(req)
except urllib2.HTTPError,e:
print e.code
print e.reason
return post.read()
url = 'http://blog.csdn.net/experts.html'
def getEvery(url):
hrefList = []
page = BeautifulSoup(getPage(url))
div = page.find('div',class_='side_nav')
liList = div.find_all('li')
for li in liList:
href = 'http://blog.csdn.net' + li.a.get('href')
if href!='http://blog.csdn.net/experts.html':
hrefList.append(href)
return hrefList
#第一部分:得到首頁部落格專家各個系列連結
#===============================================================================
def getAll(href): #得到每個類別所有專家的姓名和部落格首頁地址
page=BeautifulSoup(getPage(href)) #得到移動專家首頁原始碼,並beautifulsoup化
div = page.find('div',class_='list_3',id='experts')
for li in div.find_all('li'):
name = li.get_text()
href = li.a.get('href')
getBlog(name,href)
#第二部分:得到每類所有專家的姓名和首頁連結
#===============================================================================
def getPageNum(href):
num =0
page = getPage(href)
soup = BeautifulSoup(page)
div = soup.find('div',class_='pagelist')
if div:
result = div.span.get_text().split(' ')
list_num = re.findall("[0-9]{1}",result[3])
for i in range(len(list_num)):
num = num*10 + int(list_num[i]) #計算總的頁數
return num
else:
return 0
def getText(name,url):
page = BeautifulSoup(getPage(url))
span_list = page.find_all('span',class_='link_title')
div_list = page.find_all('div',class_='article_description')
k =0
str1 = 'none'
fp = open("text\%s.txt" % name,"a")
# 獲取文章內容和內容
for div in div_list:
title = span_list[k].a.get_text().strip()
text = div.get_text()
title = title.encode('utf-8') #轉換成utf-8編碼,否則後文寫不到檔案裡
text = text.encode('utf-8')
#print title
k+=1
fp.write(str(title) + '\n' + str(text) + '\n')
fp.write('===========================================' + '\n')
fp.close()
def getBlog(name,href):
i =1
for i in range(1,(getPageNum(href)+1)):
url = href + '/article/list/' + str(i)
print url
getText(name,url)
i+=1
print href,'======================================OK'
#第三部分:得到每類所有專家的部落格內容連結
#===============================================================================
if __name__=="__main__":
hrefList = getEvery(url)
for href in hrefList:
getAll(href)
結果如下:
相關文章
- Python爬取CSDN部落格資料Python
- Python爬取CSDN部落格專家系列——移動開發Python移動開發
- 【爬蟲】利用Python爬蟲爬取小麥苗itpub部落格的所有文章的連線地址(1)爬蟲Python
- 01、部落格爬蟲爬蟲
- [python 爬蟲]第一個Python爬蟲,爬取某個新浪部落格所有文章並儲存為doc文件Python爬蟲
- 【爬蟲】利用Python爬蟲爬取小麥苗itpub部落格的所有文章的連線地址並寫入Excel中(2)爬蟲PythonExcel
- Python3 大型網路爬蟲實戰 002 --- scrapy 爬蟲專案的建立及爬蟲的建立 --- 例項:爬取百度標題和CSDN部落格Python爬蟲
- 分享5個爬蟲專業部落格網站爬蟲網站
- [雪峰磁針石部落格]python爬蟲cookbook1爬蟲入門Python爬蟲
- [python爬蟲] 正規表示式使用技巧及爬取個人部落格例項Python爬蟲
- Python爬蟲實戰一:爬取csdn學院所有課程名、價格和課時Python爬蟲
- 實現爬取csdn個人部落格並匯出資料
- 部落格開張及本部落格內容簡介
- Python 實用爬蟲-04-使用 BeautifulSoup 去水印下載 CSDN 部落格圖片Python爬蟲
- Python爬蟲爬取B站up主所有動態內容Python爬蟲
- python爬蟲--爬取鏈家租房資訊Python爬蟲
- Python爬蟲-部落格園首頁推薦部落格排行(整合詞雲+郵件傳送)Python爬蟲
- 部落格內容規範
- Python3爬取CSDN個人部落格相關資料--新增GUI圖形化介面PythonGUI
- 【爬蟲工具】下載部落格轉成Markdown的形式爬蟲
- 每天一個爬蟲-learnku我的部落格列表爬蟲
- Python爬蟲入門教程 40-100 部落格園Python相關40W部落格抓取 scrapyPython爬蟲
- 部落格內容管理實現
- PHP 爬蟲爬取社群文章內容PHP爬蟲
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- JB的Python之旅-爬蟲篇-新浪微博內容爬取Python爬蟲
- scrapy定製爬蟲-爬取javascript內容爬蟲JavaScript
- 我的第一篇部落格(從爬蟲開始)爬蟲
- python 爬蟲如何爬取動態生成的網頁內容Python爬蟲網頁
- 網路爬蟲——專案實戰(爬取糗事百科所有文章)爬蟲
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- python 爬蟲 爬取 learnku 精華文章Python爬蟲
- python爬蟲——爬取大學排名資訊Python爬蟲
- 將部落格搬至CSDN
- 《將部落格搬至CSDN》
- 增補部落格 第十九篇 python 爬樓梯Python
- 批量匯出 CSDN 部落格並轉為 hexo 部落格風格Hexo
- Python爬蟲實戰系列1:部落格園cnblogs熱門新聞採集Python爬蟲