在昨天的基礎上增加了以下內容:
一、###獲取**簡介
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...