寒假自己通过视频学习python3的一些基础性的内容,寒假就要结束了,在这里写一个小程序算是一个阶段性的成果了吧,在这里打算写一个小爬虫,爬取网络上一部小说的内容,(因为小说的字数较多,跑起来应该感觉很不错吧)在这些写一下要实现的功能。
1、通过给定小说的第一章的网址,来爬取该小说的数据,同时找到下一章的url进行下一章的爬取。
2、把小说的题目爬取到,打印到屏幕上
3、把小说每一章的题目和内容保存到一个txt文件中,txt文件的名字为每一章名字(这是暂时的内容以后可能会保存到一个txt文件中)。
实现:
1、要实现通过url得到内容,这里使用的urllib.request
import urllib.request
LXBM='gbk' #文件的编码类型,需要单独设置
weburl='http://www.bxwx.org/b/8/8823/5789596.html'
webheaders={
'Connection':'Keep_Alive',
'Accept':'text/html,application/xhtml+xml,*/*',
'Accept-Language':'zh-CN,zh;q=0.8',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36 LBBROWSER',
} #报头,模拟浏览器的访问行为
def getDate(Burl,Bheaders):
#根据url地址得到该url中的文本数据
req = urllib.request.Request(url=Burl,headers=Bheaders)#构造请求头
data = urllib.request.urlopen(req).read() #读取数据
data1 = data.decode(LXBM) #把读取的数据转换为utf-8的格式
return data1
html=getDate(weburl,webheaders)
print(html)
2、可以把str的内容保存的txt文档中,这里使用一个函数进行保存
def saveDataFileN(DData,DFileN):
#保存文件,传入的为文件数据,文件名
f = open(DFileN,'w', encoding = 'utf-8')
f.write(DData)
f.close()
注:在实际使用时发现返回的html中的编码方式是不同的,如果使用的编码方法不匹配会报错,这里为了先大致完成是通过手工的方式更改编码类型,以后可能会考虑实现通过自动检测自动更改编码类型。