爬取貼吧小專案

2021-08-21 14:32:59 字數 1478 閱讀 5211

實現任意貼吧的爬蟲,儲存網頁到本地;

思路:

import requests

# 定義乙個貼吧爬蟲類

class tiebacrawler(object):

# 基礎url

basic_url = ""

# 初始化方法

def __init__(self, name, start, end):

self.name = name

self.start = start

self.end = end

# 2.1 根據規律生成訪問貼吧內容頁面的url,放到列表中

def get_url_list(self):

# 定義乙個list

# url_list =

# # 生成url放入list中

# for i in range(self.start, self.end+1):

# url = self.basic_url.format(self.name, (i-1)*50)

# #返回list的列表

# return url_list

# 扁平化寫法: 推薦,簡潔

return [self.basic_url.format(self.name, (i-1)*50) for i in range(self.start, self.end+1)]

def download_from_url(self, url):

response = requests.get(url)

return response.content

# 寫乙個方法把內容寫到檔案中

def write_to_file(self, filename, content):

with open(filename, "wb") as f:

f.write(content)

def run(self):

# 2.1 根據規律生成訪問貼吧內容頁面的url,放到列表中

url_list = self.get_url_list()

# print(url_list)

# 遍歷url,傳送請求,獲取內容

for url in url_list:

content = self.download_from_url(url)

# 檔名稱: 貼吧名稱_頁碼

file_name = "{}_第{}頁.html".format(self.name, url_list.index(url)+1)

# 把內容頁面寫到檔案中

self.write_to_file(file_name, content)

print("寫入完成")

if __name__ == '__main__':

# 思路: 從使用者角度去考慮**寫法

ts = tiebacrawler("電影", 1, 5)

ts.run()

爬取百度貼吧

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

Python爬取貼吧(簡潔版)

encoding utf 8 import urllib2,urllib class tieba def tiebaspider self,name,starpage,endpage 要爬取得網路位址 url 要爬取得帶關鍵字的位址 url url urllib.urlencode 迴圈起始位置到終...