python爬取百度貼吧小說

2021-07-26 03:10:54 字數 2077 閱讀 6716

#coding:utf-8

import urllib2

import re

class bdtb:

baseurl=''

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

def getpage(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

return response

except

exception,e:

print e

#獲取標題

def title(self,pagenum):

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

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

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

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

for item in items: #把爬取的標題放入到檔案中間

if pagenum == 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

return items

#獲取**正文

def text(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)

if pagenum == 1:

req = req[1:]

for i in req: #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:

for i in

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

print

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

bdtb.title(i)

bdtb.text(i)

except

exception,e:

print e

print

'爬取結束...'

#bdtb.getpage(1)

#bdtb.title(1)

#bdtb.text(1)

python爬取百度貼吧小說

coding utf 8 importurllib2 importre classbdtb baseurl 開啟 獲取原始碼,返回response物件內容 defgetpage self,pagenum try url self.baseurl str pagenum request urllib2...

爬取百度貼吧

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 建立資...