通过学习Python+request,爬取《雪中悍刀行》小说

@TOC获取雪中悍刀行的小说章节
1.获取雪中悍刀行的小说网址:https://www.37zw.net/0/761/
先获取需要爬取小说的网址,然后再在当前页面中解析,它每一章的具体后缀网址信息和章节名称
在这里插入图片描述

	base_url = 'https://www.37zw.net/0/761/'
    Headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0'}
    response1 = requests.get(base_url,headers=Headers)
    text1 = response1.content.decode('gbk')
    html1 = etree.HTML(text1)
    api_urls = html1.xpath('//*[@id="list"]/dl/dd/a/@href')
    booknames = html1.xpath('//*[@id="list"]/dl/dd/a/text()')

2.获取到的booknames是一个列表,我们可以通过循环该列表,然后依次爬取每一章的具体小说内容,然后再处理一下获取到的文本

    for i in range(len(api_urls)):
        api_url = api_urls[i]
        bookname = booknames[i]
        url = base_url + api_url
        # print(url ,bookname)
        response = requests.get(url, headers=Headers)
        text = response.content.decode('gbk')
        html = etree.HTML(text)
        contexts = html.xpath("//div[@id='content']/text()")
        context = str(contexts)
        content = context.replace('\\xa0\\xa0\\xa0\\xa0', ' ')
        contents = content.replace('\',', ' ')

3.再降处理后的小说文本内容保存到对应的txt文件中

        try:
            # with open('%s.txt'%bookname,"wb") as f:
            while os.path.exists('%s.txt'%bookname): #判断是否已经存在该文件名称
                break
            else:
                with open('%s.txt' % bookname, "wb") as f:
                    print(bookname)
                    f.write(contents.encode())
                    f.close()
                time.sleep(0.01)
        except Exception as e:
            print(e)
            continue

总结:
作为爬虫的初学者,先简单的爬取一下静态页面的小说,这一部分还是比较简单的。就我而言,现在还处在初入门的阶段,通过不断学习,增强自己的知识。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值