资源简介
Python爬取网站上的小说保存到本地txt
代码片段和文件信息
#!/usr/bin/python
# -*- coding:utf-8 -*-
import requests #抓取网页的html源码
import random #取随机数
from bs4 import BeautifulSoup #用于代替正则式 取源码中相应标签中的内容
import sys
import time #时间操作
class downloader(object):
def __init__(self):
self.server = ‘http://www.biqukan.com‘
self.target = ‘http://www.biqukan.com/0_790/‘
self.names = [] #章节名
self.urls = [] #章节链接
self.nums = 0 #章节数
“““
获取html文档内容
“““
def get_content(selfurl):
# 设置headers是为了模拟浏览器访问 否则的话可能会被拒绝 可通过浏览器获取
header = {
‘Accept‘: ‘text/htmlapplication/xhtml+xmlapplication/xml;q=0.9*/*;q=0.8‘
‘Connection‘: ‘keep-alive‘
‘Accept-Encoding‘: ‘gzip deflate‘
‘Accept-Language‘: ‘zh-cn‘
‘User-Agent‘: ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/605.1.15 (KHTML like Gecko) Version/11.1 Safari/605.1.15‘
}
# 设置一个超时时间 取随机数 是为了防止网站被认定为爬虫
timeout = random.choice(range(80 180))
while True:
try:
req = requests.get(url=url headers=header timeout=timeout)
break
except Exception as e:
print(‘3‘e)
time.sleep(random.choice(range(8 15)))
return req.text
“““
获取下载的章节目录
“““
def get_download_catalogue(selfurl):
html = self.get_content(url)
bf = BeautifulSoup(html ‘html.parser‘)
texts = bf.find_all(‘div‘ {‘class‘: ‘listmain‘})
div = texts[0]
a_s = div.find_all(‘a‘)
self.nums = len(a_s[12:17]) #去掉重复的最新章节列表 不重复的前5章
for each in a_s[12:17]:
self.names.append(each.string)
self.urls.append(self.server + each.get(‘href‘))
“““
获取下载的具体章节
“““
def get_download_content(self url):
html = self.get_content(url)
bf = BeautifulSoup(html ‘html.parser‘)
texts = bf.find_all(‘div‘ {‘class‘: ‘showtxt‘ ‘id‘: ‘content‘})
text = texts[0].text.replace(‘\xa0‘ * 7 ‘\n\n‘) # \xa0表示连续的空白格
return text
“““
将文章写入文件
“““
def writer(selfnamepathtext):
write_flag = True
with open(path ‘a‘ encoding=‘utf-8‘) as f:
f.write(name + ‘\n‘)
f.writelines(text)
f.write(‘\n\n‘)
if __name__ == ‘__main__‘:
dl = downloader()
dl.get_download_catalogue(dl.target)
for i in range(dl.nums):
dl.writer(dl.names[i] ‘天尊.txt‘ dl.get_download_content(dl.urls[i]))
print(“已下载:%.2f%%“% float((i+1)/dl.nums * 100) + ‘\r‘)
print(‘下载完成!‘)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 17920 2020-11-17 11:57 PythonApplication1\.vs\PythonApplication1\v16\.suo
文件 3191 2020-11-17 11:57 PythonApplication1\PythonApplication1.py
文件 1568 2020-11-17 10:23 PythonApplication1\PythonApplication1.pyproj
文件 977 2020-11-17 10:23 PythonApplication1\PythonApplication1.sln
文件 73590 2020-11-17 11:28 PythonApplication1\天尊.txt
目录 0 2021-01-25 09:58 PythonApplication1\.vs\PythonApplication1\v16
目录 0 2021-01-25 09:58 PythonApplication1\.vs\PythonApplication1
...D.H. 0 2021-01-25 09:58 PythonApplication1\.vs
目录 0 2021-01-25 09:58 PythonApplication1
----------- --------- ---------- ----- ----
97246 9
- 上一篇:NumPy Cookbook
- 下一篇:动物图片识别.py(基于百度api)
相关资源
- 动物图片识别.py(基于百度api)
- NumPy Cookbook
- 网络爬虫(pachong_anjuke.py)
- python demo百度文库.py
- Python总结(精简).doc
- Supervised Learning with Python
- PyQt行星模拟.py
- python实现一个简单的名片管理系统功
- Python源码剖析.pdf59505
- python语言实现的基于opencv的表针识别
- 基于Python的酒店管理系统
- pycaret数据挖掘实践
- 打砖块
- python数据结构
- numpy,pandas,matplotlib速查手册
- python实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
评论
共有 条评论