对某网站小说的爬取下载

import urllib.request  # 用于获取网页内容的模块

import bs4
import requests
from bs4 import BeautifulSoup  # 用于解析网页源代码的模块

header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36', }
link = "http://www.zxcs.me/sort/25"  # 这是小说网站的武侠小说板块链接
r = requests.get(link, headers=header)  # 通过 requests 模块的 get 方法获取网页数据
html = r.content  # 获取网页内容
soup = BeautifulSoup(html, "html.parser")  # 通过 BeautifulSoup 模块解析网页,具体请参考官方文档。
books = soup.find("dt").select("a", limit=1)  # 通过分析网页源代码找到排行第一的武侠小说推荐

for s in books:
    s
book_id = s['href'][24:]  # 只截取小说链接中的 ID 部分
book_name = s.text  # 获取 a 标签的文本内容,即小说的名称。
header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 '
                  'Safari/537.36', }
book_link = "http://www.zxcs.me/download.php?id=" + book_id  # 根据小说的 ID 号拼接出小说专页链接
response_book_down_id = requests.get(book_link, headers=header)  # 通过 requests 模块的 get 方法获取小说下载页的网页数据
html_s = response_book_down_id.content  # 获取小说下载页的网页内容
soup_s = bs4.BeautifulSoup(html_s, 'html.parser')
book_down_s = soup_s.find("span", class_="downfile").select("a", limit=1)

for book_down in book_down_s:
    book_down
book_down_id = book_down['href'][25:]  # 只截取小说下载名称中的 ID 部分
book_down_link = "http://185.163.45.196/20/" + book_down_id
print("正在下载.\n\r")
response = requests.get(book_down_link, headers=header).content
f = open(book_name + ".rar", 'wb')  # 以二进制的形式写入文件中
f.write(response)
f.close()
print("下载完成.\n\r")

猜你喜欢

转载自blog.csdn.net/weixin_42043935/article/details/103773584