Python3爬蟲爬取百度貼吧

2021-08-26 15:09:03 字數 2392 閱讀 6030

1.需求分析

為了爬取貼吧中樓主所發表的帖子,並把內容提取出來儲存到txt檔案中。

2.全部**

這份**寫的比較早,所以裡面提取內容基本上用的全是正規表示式,並沒有呼叫一些非常高階的包。**如下:

# -*- coding:utf-8 -*-

import urllib.request

import urllib.parse

import re

class tools:

removeimg=re.compile('| ')

removeaddr=re.compile('|')

replaceline=re.compile('|')

replacetd=re.compile('')

replacepara=re.compile('')

replacebr=re.compile('

') removeextratag=re.compile('<.*?>|(<)+')

def replace(self,x):

x=re.sub(self.removeimg,'',x)

x=re.sub(self.removeaddr,'',x)

x=re.sub(self.replaceline,'\n',x)

x=re.sub(self.replacetd,'\t',x)

x=re.sub(self.replacepara,'\n',x)

x=re.sub(self.replacebr,'\n',x)

x=re.sub(self.removeextratag,'',x)

return x.strip()

class bdtb:

def __init__(self,baseurl,seelz):

self.baseurl=baseurl

self.seelz='?see_lz='+str(seelz)

self.tool=tools()

def getpage(self,pagenum):

try:

url=self.baseurl+self.seelz+'&pn='+str(pagenum)

request=urllib.request.request(url)

response=urllib.request.urlopen(request)

return response

except urllib.request.urlerror as e:

if hasattr(e,'reason'):

return none

def getpagenum(self):

page=self.getpage(1).read().decode('utf-8')

pattern=re.compile('"total_page":\d+',re.s)

result=re.findall(pattern,page)

return result[0].split(':')[1]

def gettitle(self):

page=self.getpage(1).read().decode('utf-8')

pattern=re.compile('title: ".*?"',re.s)

result=re.findall(pattern,page)[0].split(':')[1]

return result

def getcontent(self,page):

pattern=re.compile(r'.*?

',re.s)

items=re.findall(pattern,page)

new_items=

for item in items:

return new_items

baseurl=''

bdtb=bdtb(baseurl,1)

with open('tb.txt','w') as teibatxt:

#取出帖子的標題

title=bdtb.gettitle().strip(' ').strip('"')

#為了將標題與帖子內容隔開,標題與內容之間有三行間隔

teibatxt.write(title+'\n\n\n')

pagenum=bdtb.getpagenum()

for page_num in range(int(pagenum)):

page=bdtb.getpage(page_num+1).read().decode('utf-8')

page_items=bdtb.getcontent(page)

for item in page_items:

teibatxt.write(item+'\n')

爬蟲爬取百度貼吧 python

本爬蟲是在pycharm中編寫完成,伺服器環境是ubuntu16.04,使用語言是python3,匯入的模組包是requests模組 匯入模組 import requests class tiebaspider object def init self self.base url self.head...

python3 練手 爬百度貼吧

貼吧 實現 usr bin env python encoding utf 8 import urllib import urllib.request import re import time 文字處理類 class tools removeimg re.compile removea re.co...

爬取百度貼吧

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