使用Xpath爬虫库下载诗词名句网的史书典籍类所有文章。

# 需要的库
from lxml import etree
import requests
# 请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
}
# 保存文本的地址
pathname=r'E:\爬虫\诗词名句网\\'
# 获取书籍名称的函数
def get_book(url):
    response = requests.get(url,headers)
    etrees = etree.HTML(response.text)
    url_infos = etrees.xpath('//div[@class="bookmark-list"]/ul/li')

    for i in url_infos:
        url_info = i.xpath('./h2/a/@href')
        book_name = i.xpath('./h2/a/text()')[0]
        print('开始下载.'+book_name)
        # print('http://www.shicimingju.com'+url_info[0])
        get_index('http://www.shicimingju.com'+url_info[0])
# 获取书籍目录的函数
def get_index(url):
    response = requests.get(url, headers)
    etrees = etree.HTML(response.text)
    url_infos = etrees.xpath('//div[@class="book-mulu"]/ul/li')
    for i in url_infos:
        url_info = i.xpath('./a/@href')
        # print('http://www.shicimingju.com' + url_info[0])
        get_content('http://www.shicimingju.com' + url_info[0])
# 获取书籍内容并写入.txt文件
def get_content(url):
    response = requests.get(url, headers)
    etrees = etree.HTML(response.text)
    title = etrees.xpath('//div[@class="www-main-container www-shadow-card "]/h1/text()')[0]
    content = etrees.xpath('//div[@class="chapter_content"]/p/text()')
    content = ''.join(content)
    book_name=etrees.xpath('//div[@class="nav-top"]/a[3]/text()')[0]
    with open(pathname+book_name+'.txt','a+',encoding='utf-8') as f:
        f.write(title+'\n\n'+content+'\n\n\n')
        print(title+'..下载完成')

# 程序入口
if __name__ == '__main__':
    url = 'http://www.shicimingju.com/book/'
    get_book(url)

控制台查看下载过程;在这里插入图片描述
打开文件夹查看是否下载成功;
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值