python爬取百度貼吧小說

2021-07-26 03:10:54 字數 2870 閱讀 6179

#coding:utf-8

importurllib2

importre

classbdtb:

baseurl=''#開啟**,獲取原始碼,返回response物件內容

defgetpage(self,pagenum):

try:

url = self.baseurl+str(pagenum)

request=urllib2.request(url) #先request建立物件

response = urllib2.urlopen(request).read() #在通過request物件urlopen獲取response物件,通過response物件read

#print response

returnresponse

exceptexception,e:

printe

#獲取標題

deftitle(self,pagenum):

html = self.getpage(pagenum) #呼叫第幾頁的原始碼

reg = re.compile(r'title="【原創】(.*?)"') #編輯正規表示式,提高效率

items = re.findall(reg,html) #items是list型別

#items=items.decode('gbk').encode('utf8')

foriteminitems: #把爬取的標題放入到檔案中間

ifpagenum == 1:

f = open('g:\\text1.txt','w')

f.write('標題'+'\t'+item)

f.close()

else:

f = open('g:\\text1.txt','a')

f.write('標題'+'\t'+item)

f.close()

#print items

returnitems

#獲取**正文

deftext(self,pagenum):

html = self.getpage(pagenum) #獲取第幾頁正文

reg = re.compile(r'class="d_post_content j_d_post_content "> (.*?)

',re.s) #re.s是匹配換行符

req = re.findall(reg,html)

ifpagenum == 1:

req = req[1:]

foriinreq: #i 是正文內容

i = re.sub(removeaddr1,"",i) #從i內容中找到removeaddr1用「」代替

i = re.sub(removeaddr2,"",i)

i = re.sub(removeaddr3,"",i)

i= i.replace('

','')

f = open('g:\\text1.txt','a') # 追加模式

f.write('\n\n'+i)

f.close()

#print i

#print req

bdtb=bdtb()

print'爬蟲正在啟動...'try:

foriinrange(1,21): #只爬取14頁

print'正在爬取%s頁的**'%(i)

bdtb.title(i)

bdtb.text(i)

exceptexception,e:

printe

print'爬取結束...'#bdtb.getpage(1)

#bdtb.title(1)

#bdtb.text(1)

python爬取百度貼吧小說

coding utf 8 import urllib2 import re class bdtb baseurl 開啟 獲取原始碼,返回response物件內容 def getpage self,pagenum try url self.baseurl str pagenum request url...

爬取百度貼吧

import urllib.request import urllib.parse import os,time 輸入貼吧名字 baname input 請輸入貼吧的名字 start page int input 請輸入起始頁 end page int input 請輸入結束頁 不完整的url ur...

爬取百度貼吧

帶入需要使用的包 from urllib import request,parse importos 基礎知識 變數賦值 字串賦值 爬取的關鍵字 kw lol 數值賦值 爬取的頁數範圍 start 1end 4 輸出 print kw,start,end 宣告需要爬取的連線 base url 建立資...