2021/09/18
简单的写了一个小爬虫,爬取笔趣阁上面的小说。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Sep 16 14:04:15 2021
笔趣阁小说抓取
@author: fanzhen
"""
import requests
from bs4 import BeautifulSoup
import time
?
def get_html(url):
headers={
‘user-agent‘:‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36‘
}
req=requests.get(url,headers=headers)
if req.status_code == 200:
req.encoding=req.apparent_encoding #使用网页现在的编码形式,以防乱码
return req.text
#这是判断网页返回的状态码,200代表连接成功,大家常见的应该是404和503
else:
return
def get_texts(html):
soup=BeautifulSoup(html,‘html.parser‘) #使用beautisoup对网页源码进行解析
title=soup.select("#wrapper > div.content_read > div.box_con > div.bookname > h1")#取得章节名称
w=‘‘
w+=title[0].get_text().replace(‘\n‘,‘‘).replace(‘\r‘,‘‘)+‘\n‘
t=soup.select(‘#content‘)
w+=t[0].get_text()
w+=‘\n‘
print(w)
return w
?
def get_pages(html):
soup=BeautifulSoup(html,‘html.parser‘) #使用beautisoup对网页源码进行解析
np=soup.select(‘#wrapper > div.content_read > div.box_con > div.bookname > div > a.next‘)
return np[-1].get(‘href‘)
?
?
?
?
def get_classes(html):#抓取小说类别
soup=BeautifulSoup(html,‘html.parser‘)
classes=soup.select(‘#wrapper > div.nav > ul > li > a‘)
del classes[:2]#删除无关类别
del classes[-2]
c=‘‘
cc=1
class_link=[]
for i in classes:#映出小说类别
c+=str(cc)+‘.‘+i.get_text()+‘ ‘
cc+=1
class_link.append(i.get(‘href‘))
print(c)
return class_link
?
?
?
?
def select_class(num,class_link):#进入小说类别,查看该类别下的小说
sub_url=‘https://www.biqugeu.net‘+class_link[num]
classes_html=get_html(sub_url)
soup=BeautifulSoup(classes_html,‘html.parser‘)