本文来源吾爱破解论坛
本帖最后由 龟仔龟龟 于 2020-2-20 16:23 编辑
代码分享
最近学习了下Python爬虫,于是尝试批量爬取了稻草人书屋小说站的小说,下面贴上源码,仅供交流学习
import requests
from bs4 import BeautifulSoup
import os
#root为小说下载保存时的根目录
root = r'D:\\E-book\\literature\\'
#构造浏览器访问
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 \
(KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36",
"Referer":"https://www.daocaorenshuwu.com/"}
#通过一本小说的介绍界面,爬取作者所有作品介绍界面URL
#url = 'https://www.daocaorenshuwu.com/txt/11205.html' 这个请自行替换,网址格式需和这个类似
r = requests.get('https://www.daocaorenshuwu.com/txt/10182.html', headers = headers)
r.encoding = r.apparent_encoding
#用BeautifulSoup解析源码
soup = BeautifulSoup(r.text, 'html.parser')
#提取这个作者所有作品介绍界面URL
soup = soup.find_all('div', 'col-md-6 col-xs-12')
#创建介绍界面URL的一个列表
introduction_url = []
for i in range(len(soup)):
soup[i] = soup[i].find('a')
#提取出的URL为相对路径
#将其转换为绝对路径
part_url = soup[i].get('href')
complete_url = 'https://www.daocaorenshuwu.com' + part_url
introduction_url.append(complete_url)
#依次爬取列表中的小说介绍界面
#从而获取下载认证界面地址
for url in introduction_url:
#用rstrip()去掉url后面的\n
r = requests.get(url = url.rstrip(), headers = headers)
r.encoding = r.apparent_encoding
#用BeautifulSoup解析源码
soup = BeautifulSoup(r.text, 'html.parser')
#soup_name用于提取书名
soup_name = soup
#提取小说下载界面认证URL
soup = soup.find('div', 'col-md-6 text-center')
soup = soup.find('a')
soup = soup.get('href')
#构造可以通过认证的POST请求URL
#可以通过开发者工具得出
#其实verification后面的数字就是让你关注公众号获取的验证码
download_url = 'https://www.daocaorenshuwu.com' + soup + '&verification=12022018'
#提取小说名称用于文件保存
soup_name = soup_name.find('a', 'media-right')
soup_name = soup_name.find('img')
novel_name = soup_name.get('alt')
#path为小说完整保存路径
path = root + novel_name + '.zip'
#下载小说
print(novel_name + '下载中')
if not os.path.exists(root):
os.mkdir(root)
if not os.path.exists(path):
res = requests.post(url = download_url, headers = headers)
if (res.status_code == 200):
with open(path, 'wb') as f:
f.write(res.content)
f.close()
print(novel_name + '下載完成')
效果图
Snipaste_2020-02-20_13-59-24.png (79.28 KB, 下载次数: 0)
下载附件 保存到相册
2020-2-20 14:00 上传
效果一
Snipaste_2020-02-20_13-59-47.png (59.53 KB, 下载次数: 0)
下载附件 保存到相册
2020-2-20 14:00 上传
效果二
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: 王者荣耀皮肤图片爬虫
- 下一篇: 学习PYTHON半个多月,写的一个VIP视频播放器(半成品)