python爬取小说项目概述,Python爬虫入门实战项目--爬取新笔趣阁小说

1、网页查看

b13850e2f8c0fc89538e7527344bbf84.png

进入到全部小说,这就是我们要爬取的小说,这些够看很长时间了

28d25c00bb80f1ccf75a72d6ed7be26c.png

2、完整代码及注释分析

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

import requests

from bs4 import BeautifulSoup

import os

import re

headers = {

"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36"

}

#保存路径

path = "./小说"

#如果路径不存在就创建

if not os.path.exists(path):

os.mkdir(path)

#访问的url

url = "http://www.xbiquge.la/xiaoshuodaquan/"

#发起get请求

response = requests.get(url=url, headers=headers)

#注意设置编码,不然为乱码

response.encoding = "utf-8"

#解析网页

data = BeautifulSoup(response.text, "html.parser")

#参考图1,获取ul下的所有li

ul = data.find(class_="novellist").find_all("li")

#遍历

for li in ul:

li_data = BeautifulSoup(str(li), "html.parser")

#参考图2

#小说名称

name = li_data.find("a").text

#详情页url

page_url = li_data.find("a")["href"]

#拼接路径

path = path + "/" + name

print("正在爬取:"+name)

if not os.path.exists(path):

os.mkdir(path)

#向详情页发起请求

page_response = requests.get(url=page_url, headers=headers)

page_response.encoding = "utf-8"

page_data = BeautifulSoup(page_response.text, "html.parser")

#参考图3

dl = page_data.find("dl").find_all("dd")

#遍历dl

for dd in dl:

dd_data = BeautifulSoup(str(dd),"html.parser")

#参考图4

chapter = dd_data.find("a").text

chapter_url = "http://www.xbiquge.la" + dd_data.find("a")["href"]

#对每一章节url发起请求

res = requests.get(url=chapter_url,headers=headers)

res.encoding = "utf-8"

try:

#参考图5

#获取每一章节中的文本内容,使用select选择器进行定位

text = BeautifulSoup(res.text,"html.parser").select("#content")[0].text

except:

pass

#使用正则进行替换

section_text = re.sub('\s+', '\r\n\t', text).strip('\r\n').replace("亲,点击进去,给个好评呗,分数越高更新越快,据说给新笔趣阁打满分的最后都找到了漂亮的老婆哦!手机站全新改版升级地址:http://m.xbiquge.la,数据和书签与电脑站同步,无广告清新阅读!","")

#保存文件

with open(path +"/"+chapter+".txt",'wb') as f:

f.write(section_text.encode("UTF-8"))

View Code

3、图片辅助分析

图1

d47d50dc58e5cb79556421450ac0aa25.png

图2

934902c86e147710ce6177f94a02133c.png

图3

f1b18b3d8aa81d90457428ce35171829.png

图4

43953230c990608eed6abf9cf1b56226.png

图5

99983d58476e4b95ca1ea22d2478366a.png

3、运行结果

fa302ae91bcd34e797284e2fee45bd88.png

e3b69dfb8fcfa240eff6e4ac0a7ce6e3.png

9a89ec5fcedc0b768f93490869f6b124.png

标签:Python,text,li,爬取,--,url,path,data,find

来源: https://www.cnblogs.com/cy0628/p/14164440.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值