python爬虫项目1:小说下载

最近在学爬虫,被动态网站,分布式什么的搞得头昏脑涨,所以先停下来巩固一下基础。先从小的完整的项目写起,代码小学生水平,接受批评…

目标:
爬取笔趣看这个网站的一本小说:
工具:
requests模块,re模块,正则表达式
代码如下:

import requests
import re
#目录url
url='https://www.biqukan.com/1_1094/'
#获取目录html
response=requests.get(url)
response=response.text
#设置基础链接,用于后面拼接章节链接
base='https://www.biqukan.com'
#用正则找出章节章节链接和名称,用非贪婪匹配
#遇到一个小坑,就是正则里的引号嵌套,试了在双引号前面加\,但是报错,于是外层用了单引号,内层用了双引号,成功!('<a href ="(\/1_1094\/\d+\.html)">(.*?)</a>',

chaplinks=re.findall('<a href ="(\/1_1094\/\d+\.html)">(.*?)</a>',response) #返回的是对象列表,列表每个元素里有两个元素:章节链接后缀和章节名称


links=[] #用于存储章节链接
names=[] #用于存储章节名称
for i in range(len(chaplinks)):
    link=base+chaplinks[i][0] #获取章节链接
    chapname=chaplinks[i][1] #获取章节名称
    links.append(link)
    names.append(chapname)
 #前15个link是前情提要,所以从第16个link开始,打印第15-30个link的内容
for i in links[15:30]:
    html=requests.get(i)
    html=html.text
    pattern=re.compile(r'<div id="content" class="showtxt">(.*?)<\/div>',re.S)
    #用空白替换格式符号
    content=re.findall(pattern,html)[0].replace('&nbsp;','').replace('<br />','')
    for i in content:
    #写入文件
        filename='一念永恒.txt'
        with open(filename,'a') as f:
            f.write(i)

代码并不完善,比如没有分章节,还有一些杂的内容没去掉,先挖个坑,下次回来填

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值