風之動漫網路爬蟲

2021-08-28 19:23:29 字數 2734 閱讀 3012

這篇部落格是來自木林森的雪作者《簡單的小爬蟲-漫畫爬取》

import requests

import re

import os

import threading

import time

class fzdm:

addr=""

def __init__(self,mhtype):

if isinstance(mhtype,str):

pass

else:

mhtype=str(mhtype)

self.m_thread=

self.type=mhtype

self.mhaddr=self.addr+mhtype

self.startpart="001"

r=requests.get(self.mhaddr)

pattern='href="(\d+)/"'

result=re.search(pattern,r.content.decode('utf-8'))

if result:

self.endpart=result.group(1)

def downloadpart(self,index):

if isinstance(index,str):

pass

else:

index=str(index)

start=0

url=self.mhaddr+"/"+index+"/"+"index_"+str(start)+".html"

while self.downloadimage(url) == false:

start+=1

url=self.mhaddr+"/"+index+"/"+"index_"+str(start)+".html"

def downloadpart_s_e(self,s="001",e=0):

if e == 0:

e=self.endpart

if isinstance(s,str) == false:

s=str(s)

if isinstance(e,str) == false:

e=str(e)

index=

while int(s)<=int(e):

tmp_thread=threading.thread(target=fzdm.downloadpart,args=(self,s,))

#self.downloadpart(s)

tmp_thread.start()

s=str(int(s)+1)

for i in self.m_thread:

i.join()

def downloadimage(self,url):

r=requests.get(url)

isendpattern='最後一頁了'

indexpattern='(七原罪\d+話)'

result_mh=re.search(indexpattern,r.content.decode('utf-8'))

time.sleep(5)

if result_img:

mhname=result_mh.group(1)

img=result_img.group(1)

imgurl=""+img

r=requests.get(imgurl)

time.sleep(5)

if os.path.exists("download/"+mhname):

pass

else:

os.mkdir("download/"+mhname)

filename=img.replace('/','.')

f=open("download/"+mhname+"/"+filename,"wb")

f.write(r.content)

f.close()

if result_isend:

return true

else:

return false

a=fzdm("56")

a.downloadpart_s_e(277,278)

---------------------

**中我們需要注意的就是url位址的引數形式,對於爬取100話以後的內容時,**沒有任何問題,只需要更改對應的漫畫對應的數字即可以及漫畫名字,對於爬取1-99話時,url位址的引數形式需要url=self.mhaddr+"/"+index+"/"+「index_」+str(start)+".html" 加上0或00,即

url=self.mhaddr+「00/」+index+"/"+「index_」+str(start)+".html"

如果沒有加的話,因為沒有正規表示式沒有匹配到相應的url位址對應的html,會出現以下錯誤,即

unboundlocalerror: local variable 『mhname』 referenced before assignment ,除此之外,該**可以爬取風之動漫上到任意資源,對於喜愛動漫的程式設計師可以學習一波哦。

Python爬蟲之爬取動漫之家

python爬蟲之爬取動漫之家 小白上手爬蟲第一天,簡單爬取 動漫之家。小小目標 1.爬取5頁的動漫 2.以list返回其動漫位址和動漫名字 簡單粗暴,直接附上原始碼 import requests import re 獲取頁面 defgethtmltext url try kv r request...

php網路爬蟲教程 PHP網路爬蟲之CURL詳解

php的curl可以實現模擬http的各種請求,這也是php做網路爬蟲的基礎,也多用於介面api的呼叫。這個時候有人就要發問了 為什麼你特麼不用file get contents?curl的效能比它好,而且可以完成更多複雜的操作,不僅僅只是獲取頁面資料。下面先分別介紹一些常用的函式。curl ini...

網路爬蟲之Beautifulsoup入門(二)

開啟beautifulsoup之旅 在使用之前,我們還需要配置解析器,本文及之後都使用python自帶的解析器 html.parser 更多解析器介紹及比較可參考本人部落格 beautiful soup4 之table資料提取。我們使用乙個最常見的例子來說明其使用方法 html doc the do...