一、導入requests和parsel庫
requests是一個HTTP請求庫,像浏覽器一樣發送THHP請求來獲取網站信息。
parsel是對 HTML 和 XML 進行解析庫,
import requests
import parsel
二、獲取小說網站內容
通過 url = “https://www.777zw.net/1/1429/” 爬取小說網站內容。
url = "https://www.777zw.net/1/1429/"
response = requests.get(url)
responses = response.text.encode('iso-8859-1').decode('gbk')
print(responses)
在爬取小說網站時遇見一個錯誤爬取中文編譯亂碼:
之後查找資料發現是由於網頁編碼用的方式不同 :
解決方法
查看網站所用編碼方法,打開想爬取頁面開啟開發人員工具,在控制台輸入document.charse查看文本格式
將常規的 “utf-8” 格式轉換成 “gbk”
# utf-8格式
response.encoding = 'utf-8'
# 改成gbk格式
response.text.encode('iso-8859-1').decode('gbk')
獲取網頁內容代碼:
url = "https://www.777zw.net/1/1429/"
response = requests.get(url)
responses = response.text.encode('iso-8859-1').decode('gbk')
print(responses)
三、獲取小說名和獲取小說章節
在開發者工具中找到小說名:
爬取方法
selector = parsel.Selector(responses)
novel_name = selector.css('#info h1::text').get() #小說名
#info 獲取 id 是 info,h1 存取小說名,小說名是文本文件所以用text
找到小說章節
爬取代碼
href = selector.css('#list dd a::attr(href)').getall() #小說章節
get() 獲取一個,getall() 獲取所有小說章節
四、獲取章節名和小說內容
這一步原理和步驟一樣就不多贅述了
五、源代碼
import requests
import parsel
url = "https://www.777zw.net/1/1429/"
response = requests.get(url)
responses = response.text.encode('iso-8859-1').decode('gbk')
print(responses)
selector = parsel.Selector(responses)
novel_name = selector.css('#info h1::text').get() #小說名
href = selector.css('#list dd a::attr(href)').getall() #小說章節
for link in href:
link_url = 'https://www.777zw.net/1/1429/' + link
response_1 = requests.get(link_url)
responses_1 = response_1.text.encode('iso-8859-1').decode('gbk')
selecter_1 = parsel.Selector(responses_1)
title_name = selecter_1.css('.bookname h1::text').get() #小說章節
content_list = selecter_1.css('#content::text').getall() #小說內容
content = '
'.join(content_list)
break
# 保存
with open(novel_name + '.txt',mode = 'a',encoding = 'utf-8') as f:
f.write(title_name)
f.write('
')
f.write(content)
f.write('
')
# print(title_name)
print(novel_name)
print(content_list)
六、結果
先自我介紹一下,小編13年上師交大畢業,曾經在小公司待過,去過華為OPPO等大廠,18年進入阿裡,直到現在。深知大多數初中級java工程師,想要升技能,往往是需要自己摸索成長或是報班學習,但對於培訓機構動則近萬元的學費,著實壓力不小。自己不成體系的自學效率很低又漫長,而且容易碰到天花板技術停止不前。因此我收集了一份《java開發全套學習資料》送給大家,初衷也很簡單,就是希望幫助到想自學又不知道該從何學起的朋友,同時減輕大家的負擔。添加下方名片,即可獲取全套學習資料哦