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'
#用正则找出章节章节链接和名称,用非贪婪匹配
#遇到一个小坑,就是正则里的引号嵌套,试了在双引号前面加\,但是报错,于是外层用了单引号,内层用了双引号,成功!('(.*?)',

chaplinks=re.findall('(.*?)',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>',re.S) #用空白替换格式符号 content=re.findall(pattern,html)[0].replace(' ','').replace('
','') for i in content: #写入文件 filename='一念永恒.txt' with open(filename,'a') as f: f.write(i)

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

你可能感兴趣的:(python,入门,python爬虫,正则表达式,正则表达式分组,惰性匹配,正则表达式去优先级,贪婪匹配)