首页 > 其他分享 >【爬虫实例1】晋江小说免费章节爬取

【爬虫实例1】晋江小说免费章节爬取

时间:2022-08-14 14:49:03浏览次数:65  
标签:章节 title text resp list 爬虫 爬取 headers 晋江

1、 导入模块

import requests
from lxml import etree

2、获取小说名字以及章节地址

# 请求路由地址
b_resp = requests.get(b_url, headers=headers)
# 网页编码设置
b_resp.encoding = 'gb18030'
# 解析html页面
html = etree.HTML(b_resp.text)
# 书名
b_title = html.xpath('//h1/span/text()')[0]
# 章节路由地址
b_list = html.xpath('//tr/td//div/a/@href')[9:]

在这里插入图片描述

3、 获取小说内容

# 循环获取小说章节url
for item in b_list:
    c_resp = requests.get(item, headers=headers)
    c_resp.encoding = 'gb18030'
    c_page = etree.HTML(c_resp.text)
    # 小说章节标题
    c_title = c_page.xpath('//h2/text()')[0]
    # 获取小说章节内容
    c_list = c_page.xpath('//div[@class = "noveltext"]/text()')[3:-5]
    # 小说章节内容处理
    c_list = '\n'.join(c_list).replace(' ', '').replace('\u3000', '').replace('\r', '')
    # 小说章节标题和内容合并
    c_content = f'\n{c_title}\n{c_list}\n\n'
    # 写入文件
    with open(f"{b_title}.txt", mode='a', encoding='utf-8') as f:
        f.write(c_content)
    print(f'{c_title}下载完成')
print(f"{b_title}下载完成")

在这里插入图片描述

4、完整代码

import requests
from lxml import etree
import re

b_url = 'https://www.jjwxc.net/onebook.php?novelid=3472688'
headers = {
    "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36"
}


# 请求路由地址
b_resp = requests.get(b_url, headers=headers)
# 网页编码设置
b_resp.encoding = 'gb18030'
# 解析html页面
html = etree.HTML(b_resp.text)
# 书名
b_title = html.xpath('//h1/span/text()')[0]
# 章节路由地址
b_list = html.xpath('//tr/td//div/a/@href')[9:]
print(b_title)
print(b_list)
# 循环获取小说章节url
for item in b_list:
    c_resp = requests.get(item, headers=headers)
    c_resp.encoding = 'gb18030'
    c_page = etree.HTML(c_resp.text)
    # 小说章节标题
    c_title = c_page.xpath('//h2/text()')[0]
    # 获取小说章节内容
    c_list = c_page.xpath('//div[@class = "noveltext"]/text()')[3:-5]
    # 小说章节内容处理
    c_list = '\n'.join(c_list).replace(' ', '').replace('\u3000', '').replace('\r', '')
    # 小说章节标题和内容合并
    c_content = f'\n{c_title}\n{c_list}\n\n'
    # 写入文件
    with open(f"{b_title}.txt", mode='a', encoding='utf-8') as f:
        f.write(c_content)
    print(f'{c_title}下载完成')
print(f"{b_title}下载完成")

5、 小说下载展示

在这里插入图片描述

标签:章节,title,text,resp,list,爬虫,爬取,headers,晋江
From: https://www.cnblogs.com/nnguhx/p/16585387.html

相关文章

  • 【爬虫实例2】91网视频爬取
    1、导入模块importrequestsimportre2、获取m3u8文件#url地址url='http://www.wwmulu.com/rj/xhcl/play-1-1.html'#正则表达式obj=re.compile(r'<spancla......
  • 爬虫数据分析-Xpath
    1.环境安装:-pipinstalllxml2.如何实例化一个etree对象:fromlxmlimportetree(1)将本地的html文档中的源码数据加载到etree对象中:etree.parse(filePath)(2)可......