这次爬取一个鬼吹灯的小说
步骤很简单
第一步:选取目标小说的网站(这次是个静态网站)
第二步:获取网页源码(由于静态网站的缘故,这一步非常简单了)
第三步:使用正则表达式,或任意解析库,解析源码信息
第四步:保存到本地,小说就保存为txt格式,手机也可以看
这次操作占用的资源很少,所以也不需要引用scrapy框架,或selenium插件。
下面直接套代码:
import requests,json,time
from bs4 import BeautifulSoup
def getHtml(url):
response = requests.get(url)
return response.text
def parseHtml(content):
soup = BeautifulSoup(content,'lxml')
chapter = soup.find_all('div',class_ = 'content')
content = soup.find(id='content')
for i in chapter:
novel_chapter = soup.find_all('h1')[0].string
novel_content = content.text.replace('<br/>',' ')
A = '章节:{} 内容:{}'.format(novel_chapter,novel_content)
print(A)
with open('F:Spiders/小说/鬼吹灯.txt', 'a', encoding='utf-8')as F:
F.write(json.dumps(A, ensure_ascii=False) + '\n')
if __name__ == '__main__':
print('目标小说:鬼吹灯')
page = input('请输入你要爬取的页数:')
if int(page) <= 35:
time_start = time.time()
for i in range(1,int(page)+1):
url = 'http://www.gdbzkz.com/jingjuegucheng/{}.html'.format(i)
content = getHtml(url)
parseHtml(content)
time_end = time.time()
print('爬取完成,共耗时',(time_end-time_start))
else:
print('不能超过35页')
第一部小说,这里结合网页规律共 35页。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLyUDOzQTNwkTMwETMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
最后爬取完成,共耗时50s