网页文字爬取,以爬取整本书籍为例。

一、步骤

①首先,获取目录页的h1(小说名)作为文件夹名并创建文件夹。​

#设置存储文件夹
FName = text1.findAll('h1')[1].text
if not os.path.exists(FName):os.mkdir(FName)

②通过要获取小说的目录页,爬取每个章节的链接

#目录下各章节链接获取
t = '<a style="" href="(.*?)">'
AllUrl= re.findall(t, response.text)

③获取每个章节下的文字。章节名作为存储的txt名,并把对应文字存入。

注意:txt存储存在文件名存在格式问题。故:

 #判断存储文件名类型,去除不符合条件文件名for NoName in ["?","/","~","*","<",">",":","|"]:if(fileName[-1]==NoName):fileName=fileName[0:len(fileName)-1]

二、完整代码

import requests
import re
from bs4 import BeautifulSoup
import osdicF=input("请输入需要下载书籍目录:"+"\n")
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0'
}
url = dicF
response = requests.get(url, headers=headers)
text1 = BeautifulSoup(response.content.decode('utf-8', 'ignore').encode('gbk', 'ignore'), 'lxml')
#设置存储文件夹
FName = text1.findAll('h1')[1].text
if not os.path.exists(FName):os.mkdir(FName)#目录下各章节链接获取
t = '<a style="" href="(.*?)">'
AllUrl= re.findall(t, response.text)print('......书籍开始存储......')
for oneUrl in AllUrl:ListString = ""url = dicF.split('/')[0]+"//"+dicF.split('/')[2] + oneUrl.split('.')[0]+".html"response = requests.get(url, headers=headers)text = BeautifulSoup(response.content.decode('utf-8', 'ignore').encode('gbk', 'ignore'), 'lxml')getNum=0for NextOne in text.findAll('a'):if (NextOne.text=="下一页"):getNum+=1#双页文章if(getNum!=0):for num in [1,2]:url = dicF.split('/')[0]+"//"+dicF.split('/')[2]+oneUrl.split('.')[0]+"_"+num.__str__()+".html"response = requests.get(url, headers=headers)text = BeautifulSoup(response.content.decode('utf-8', 'ignore').encode('gbk', 'ignore'), 'lxml')# 存储文件标题fileName = text.findAll('h1')[1].textdiv = text.find('div', id='content')for item in div.text.split():ListString += item + "\n"# 单页文章else:url = dicF.split('/')[0]+"//"+dicF.split('/')[2] + oneUrl.split('.')[0] + ".html"response = requests.get(url, headers=headers)text = BeautifulSoup(response.content.decode('utf-8', 'ignore').encode('gbk', 'ignore'), 'lxml')# 存储文件标题fileName = text.findAll('h1')[1].textdiv = text.find('div', id='content')for item in div.text.split():ListString += item + "\n"getNum=0#判断存储文件名类型,去除不符合条件文件名for NoName in ["?","/","~","*","<",">",":","|"]:if(fileName[-1]==NoName):fileName=fileName[0:len(fileName)-1]#文件存储with open(FName+'/'+fileName+'.txt', 'a', encoding='utf-8') as f:print(fileName)f.writelines(ListString)
print("......书籍存储完成......")

Python 爬虫 书籍爬取实例相关推荐

  1. Python爬虫 - scrapy - 爬取妹子图 Lv1

    0. 前言 这是一个利用python scrapy框架爬取网站图片的实例,本人也是在学习当中,在这做个记录,也希望能帮到需要的人.爬取妹子图的实例打算分成三部分来写,尝试完善实用性. 系统环境 Sys ...

  2. python爬虫实战---爬取大众点评评论

    python爬虫实战-爬取大众点评评论(加密字体) 1.首先打开一个店铺找到评论 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多 ...

  3. python爬虫之爬取网页基础知识及环境配置概括

    记:python爬虫是爬取网页数据.统计数据必备的知识体系,当我们想统计某个网页的部分数据时,就需要python爬虫进行网络数据的爬取,英文翻译为 spider 爬虫的核心 1.爬取网页:爬取整个网页 ...

  4. python爬虫:爬取猎聘网站职位详情

    python爬虫:爬取猎聘网站职位详情 第一次学习python,也是刚开始学习爬虫,完成的第一个实例,记录一下. baseurl.py # @author centao # @time 2020.10 ...

  5. python爬虫之--爬取当当网商品信息

                                    python爬虫之--爬取当当网图商品信息                                               ...

  6. python爬取ajax动态内容肯德基门店,Python爬虫如何爬取KFC地址

    随着人们生活水平的提高,肯德基这类的快餐消费的十分火爆,成为小朋友和年轻人的最爱,我们到一个地方想要找到肯德基店面,会根据导航获取肯德基地址,那你知道我们也可以使用python爬虫获取KFC地址吗?我 ...

  7. python爬取网页表格数据匹配,python爬虫——数据爬取和具体解析

    标签:pattern   div   mat   txt   保存   关于   json   result   with open 关于正则表达式的更多用法,可参考链接:https://blog.c ...

  8. Python爬虫:爬取instagram,破解js加密参数

    Python爬虫:爬取instagram,破解js加密参数 instagram 是国外非常流行的一款社交网站,类似的还有像facebook.twitter,这些社交网站对于掌握时事热点.电商数据来源和 ...

  9. python爬取豆瓣电影top250_用Python爬虫实现爬取豆瓣电影Top250

    用Python爬虫实现爬取豆瓣电影Top250 #爬取 豆瓣电影Top250 #250个电影 ,分为10个页显示,1页有25个电影 import urllib.request from bs4 imp ...

  10. python爬取b站视频封面_学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面...

    学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面 import os import requests import re import json from bs4 import B ...

最新文章

  1. MongoDB之bson的介绍
  2. div+css的布局方式进行设计成品作业_原创响应式php企业成品网站,清晰风格版
  3. 机器学习-特征处理/归一化/标准化/降维03
  4. 搜索推荐中的召回匹配模型综述(三):基于匹配函数学习的深度学习方法
  5. Servlet 的实例对象
  6. Python猫荐书系列:文也深度学习,理也深度学习
  7. 赞!卷积神经网络中十大拍案叫绝的操作
  8. Flink java模拟生成自定义流式数据
  9. 迅捷CAD格式转换器专业版
  10. Tomcat日志总结
  11. python编写一个汽车类_python实现汽车管理系统
  12. 用asp记录论坛用户密码(dvbbs,leadbbs等)
  13. 打开我的计算机桌面分块,win10桌面图标怎么进行分类分块管理_win10桌面图标如何分块管理...
  14. YoloV3 先验框
  15. dcmtk读取dcm文件中Tag值
  16. 走进C++程序世界-----指针(动态申请空间和释放空间)
  17. C#语言实例源码系列-实现加密exe文件
  18. 以太坊Dapp通过web3js部署调用智能合约
  19. 计算机显卡性价比推荐,性能性价比兼顾!平民级显卡推荐
  20. 谁说计算机专业只能去互联网敲代码?国企,公务员,产品经理照样很香|应届生求职指南

热门文章

  1. java篇-数据库MySQL
  2. idea部署iBase4J
  3. MATLAB----数据拟合
  4. 自动控制原理复习第七章——非线性系统分析
  5. 非线性系统 知识梳理
  6. 用iPhone打造个人的GTD(Get Things Done)实践
  7. 高等数学(第七版)同济大学 习题3-1 个人解答
  8. python植物大战僵尸代码例_python实现植物大战僵尸游戏实例代码
  9. 详细分析莫烦DQN代码
  10. 软件开发模型:瀑布模型,增量模型,原型模型,螺旋模型,喷泉模型,敏捷开发模型