python爬虫爬取小说

一.爬虫爬取三国演义
爬取网站url:https://www.shicimingju.com/book/sanguoyanyi.html
所用知识requests库,bs4解析库,time库。
二.安装这三个库:(1).pip install requests
(2).pip install bs4
(3).pip install time

import requests
from bs4 import BeautifulSoup
import time
headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0'
            }
def zhangjie():#爬取url,与章节标题;list1=url;list2=章节目录。
    url = 'https://www.shicimingju.com/book/sanguoyanyi.html'
    res = requests.get(url=url,params=headers).text
    time.sleep(4)
    soup = BeautifulSoup(res, 'lxml')
    soup1 = soup.find('div', class_='book-mulu')
    soup2 = soup1.select('ul > li > a')
    soup3 = soup1.select('ul > li a')
    list1 = []
    list2 = []
    for i in range(len(soup2)):
        list1.append('https://www.shicimingju.com' + soup1.select('ul > li a')[i]['href'])
    for i in range(len(soup2)):
        list2.append(soup1.select('ul > li a')[i].text)
    return list1,list2
def neirong():#抓取章节内容。
    list1,list2 = zhangjie()
    fp = open('三国演义2.txt', 'a+', encoding='utf-8')
    for i in range(0,len(list1)):
        res = requests.get(url=list1[i],headers=headers,timeout=40).text
        soup = BeautifulSoup(res,'lxml')
        soup1 = soup.find('div',class_='chapter_content').text
        fp.write(list2[i]+'\n'+soup1+'\n'*3)
        print('第{}打印成功'.format(i+1))
        a = i
        if a == i:
            time.sleep(i/10)
        elif i>=30:
            time.sleep(i/15)
        elif i>30 & i<60:
            time.sleep(i/20)
        else:
            time.sleep(i/25)
if __name__ =="__main__":
    neirong()

本人小白,代码可能冗余,勿喷。代码运行时间可能会比较长。
有没有机会来个关注呢?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海哥头号粉丝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值