python爬取<十宗罪>

本篇文章用到三个库,分别是re,os,requests库,他们的分别对应:
1.re是正则表达式库,是用来提取特定文本内容的
2.os对文件夹进行创建删除(作用之一)
3.获取网页内容
在爬虫中,对于正则表达式我们常用的符号有(),.,,?,,\d;
一般(.
?),(.*)这两者最为常见,二者区别是第一个是非贪婪模式,第二个是贪婪模式

import re
s = 'asasasas'
li = re.findall('(as.*?)',s)
print(li)
li = re.findall('(as.*)',s)
print(li)

得到的对应结果:

['as', 'as', 'as', 'as']
['asasasas']

话不多说直接上代码!

import re
import os
import requests
def get_url(html):
    '''通过查看原网页发现给网页使用过GBK方式进行编码的,
    先通过抓大把需要的大体的内容进行抓取,然后在进行细分
    (通过正则表达式),把每一章的链接给爬下来,返回一个列表'''
    tx_url = []
    response = requests.get(html).content.decode('GBK')
    response1 = re.search('(第一卷 地窖囚奴.*?)',response,re.S).group(1)
    tx_ = re.findall('',response1,re.S)
    for url in tx_:
        tx_url.append(html + url)
    return tx_url
def get_txt(url):
    '''对于每一章,通过原网页代码分析,
    我们用正则表达式可以把每一章的标题和内容进行提取出来
    然后将其存入对应的目录中'''
    response = requests.get(url).content.decode('GBK')
    tx_title = re.findall('(.*?)',response,re.S)[0]
    tx_txt = re.findall('

(.*?)

'
,response,re.S)[0] tx_txt = tx_txt.replace('
'
,'') file_path = os.path.join('十宗罪',tx_title + '.txt') with open(file_path,'w',encoding='GBK') as f: f.write(tx_txt) os.makedirs('十宗罪',exist_ok= True)#创建一个新文件夹 tx_url = get_url('https://www.kanunu8.com/book/4514/')#获取每一章的链接 for url in tx_url: get_txt(url)

代码不难,但是在爬虫初学阶段对于相应的套路还是有所生疏,在今后的生活中,应多注意思维和习惯的养成。

你可能感兴趣的:(爬虫小程序,正则表达式的简单运用,python)