爬蟲實戰 一 爬取新筆趣閣小說2 0

2021-10-11 17:36:24 字數 4467 閱讀 1791

在昨天的基礎上增加了以下內容:

一、###獲取**簡介

ddef get_jianjie(

): pattern_description=re.compile(r'description"\scontent="(.*)"/>'

) resp_description=pattern_description.findall(resp2)

resp_description=

''.join(resp_description)

pattern_author=re.compile(r"author\"\scontent=\"\w+"

)#匹配**作者

resp_author=pattern_author.findall(resp2)

resp_author=

''.join(resp_author)

resp_author=re.sub(r"content=",' ',resp_author)

resp_author=re.sub(r'[^\u4e00-\u9fa5]+', '',resp_author)

###匹配作者並替換所有非中文符號

author =

#print(resp_description)

#print(resp_author)

with open(

'./.txt'.format(book_name),"a+",encoding=

'utf-8'

) as f:

print(

"正在寫入**作者與簡介..."

) print(f.write(book_name))

print(f.write(

'\n'

)) print(f.write(author))

print(f.write(

'\n'

)) print(f.write(resp_description))

print(f.write(

'\n'

))###回車換行很重要

print(f.write(

'\n'

)) f.close()​

​二、增加寫入檔案,並建立以書名命名的***.txt

#############爬取**內容方法########################

def get_book_text(end_url):

test_url=end_url ##url

test_resp=requests.get(test_url)

test_resp.encoding=

'utf-8'

test_resp=test_resp.text

***x=test_resp

#print(test_resp)

​ ############匹配**正文###################

pattern3=re.compile(r'(.*)')

text1=pattern3.findall(test_resp)

#print(text1)

text1=

''.join(text1)

#列表轉字串

pattern4=re.compile(r'')

##匹配回車

text2_rm_br=pattern4.sub(

'\n',text1)

###########替換回車

#print(text2_rm_br)

pattern5=re.compile(r' '

)###匹配空格

text3_rm_nbsp_br=pattern5.sub(

' ',text2_rm_br)

####替換空格

#print('正文開始:',text3_rm_nbsp_br) ###正文內容

with open(

'./.txt'.format(book_name),"a+",encoding=

'utf-8'

) as f:

print(

"正在寫入**內容"

) print(f.write(text3_rm_nbsp_br))

print(f.write(

'\n'

)) print(f.write(

'\n'

)) f.close(

)# end_url=''

# get_book_text(end_url)​​

​​############匹配文章標題方法###########################3

def get_chapters_name(end_url):

test_url1=end_url ##url

test_resp1=requests.get(test_url1)

test_resp1.encoding=

'utf-8'

test_resp1=test_resp1.text

#print(test_resp1)

​ pattern_chapter_name=re.compile(r''

)##章節名稱正則1

chapter_name=pattern_chapter_name.findall(test_resp1)

chapter_name=

''.join(chapter_name)

#print(chapter_name) ###最終chapter_name

with open(

'./.txt'.format(book_name),"a+",encoding=

'utf-8'

) as f:

print(

"正在寫入:",chapter_name)

print(f.write(chapter_name))

print(f.write(

'\n'

)) f.close(

)

**ps:**這裡需要注意的是:open函式我這裡用的a+不然在for迴圈中每次寫入都會覆蓋舊的內容​。

​  文字模式 (預設)。

x 寫模式,新建乙個檔案,如果該檔案已存在則會報錯。

b 二進位制模式。

+ 開啟乙個檔案進行更新(可讀可寫)。

u 通用換行模式(python 3 不支援)。

r 以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。

r+ 開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。

w 開啟乙個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。

w+ 開啟乙個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。

a 開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

ab 以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

a+ 開啟乙個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。

ab+ 以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。

增加了輸入​:

book_name=input(

"請輸入要爬取的**名稱:"

)

效果如下:

請輸入要爬取的**名稱:萬古神帝

您要要爬取的**是: 萬古神帝

萬古神帝

請求狀態: 200

網頁編碼方式 utf-8

正在寫入**作者與簡介...41

612711

1正在寫入: 第1章 八百年後81

正在寫入**內容

427111

正在寫入: 第2章 開啟神武印記101

正在寫入**內容

367311

正在寫入: 第3章 黃極境71

正在寫入**內容

遺留問題:

爬蟲實戰 一 爬取新筆趣閣小說1 0

每天早上上班地鐵上很多人都在看 打發時間,我也是乙個玄幻 迷,那麼就從寫乙個 的爬蟲開始吧。可以開始了 一 確定目標和思路 瀏覽 之後做出如下打算 爬蟲功能 1 輸入要搜尋的 2 跳到目標 url 3 按章節爬取 4 先按 伏天氏 來吧,覺都不是打廣告啊,這 我看了好久了,啥主角就愛裝比,不建議大家...

Python爬取新筆趣閣小說

1 首先就是先安裝第三方庫requests,這個庫,開啟cmd,輸入pip install requests回車就可以了,等待安裝。然後測試 import resquests2 然後就可以編寫程式了,首先獲取網頁源 也可以在瀏覽器檢視和這個進行對比。s requests.session url ht...

初級爬蟲爬取筆趣閣小說

import requests from pyquery import pyquery as pq def get content a response requests.get a response.encoding gbk doc pq response.text text doc conten...