原标题:用python60行代码写一个简单的笔趣阁爬虫!三分一章?

前言

利用python写一个简单的笔趣阁爬虫,根据输入的小说网址爬取整个小说并保存到txt文件。爬虫用到了BeautifulSoup库的select方法 结果如图所示:

本文只用于学习爬虫

一、网页解析

这里以斗罗大陆小说为例 网址: http://www.biquge001.com/Book/2/2486/

可以发现每章的网页地址和章节名都放在了 中的a标签中,所以利用BeautfulSoup中的select方法可以得到网址和章节名

Tag = BeautifulSoup(getHtmlText(url), "html.parser") #这里的getHtmlText是自己写的获取html的方法

urls = Tag.select("div #list dl dd a")

然后遍历列表

for url in urls:

href = "http://www.biquge001.com/" + url['href'] # 字符串的拼接 拼接成正确的网址

pageName = url.text # 每章的章名

然后每章小说的内容都存放在

substance = Tag.select("div #content") # 文章的内容

最后同理在首页获取小说的名称

bookName = Tag.select("div #info h1")

二、代码填写

1.获取Html及写入方法

def getHtmlText(url):

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

r.encoding = r.apparent_encoding # 编码转换

r.raise_for_status()

return r.text

def writeIntoTxt(filename, content):

with open(filename, "w", encoding="utf-8") as f:

f.write(content)

f.close()

print(filename + "已完成")

2.其余代码

代码如下(示例):

url = "http://www.biquge001.com/Book/2/2486/"

substanceStr = ""

bookName1 = ""

html = getHtmlText(url)

# 判断是否存在这个文件

Tag = BeautifulSoup(getHtmlText(url), "html.parser")

urls = Tag.select("div #list dl dd a")

bookName = Tag.select("div #info h1")

for i in bookName:

bookName1 = i.text

if not os.path.exists(bookName1):

os.mkdir(bookName1)

print(bookName1 + "创建完成")

else:

print("文件已创建")

for url in urls:

href = "http://www.biquge001.com/" + url['href'] # 字符串的拼接 拼接成正确的网址

pageName = url.text # 每章的章名

path = bookName1 + "\\" # 路径

fileName = path + url.text + ".txt" # 文件名 = 路径 + 章节名 + ".txt"

Tag = BeautifulSoup(getHtmlText(href), "html.parser") # 解析每张的网页

substance = Tag.select("div #content") # 文章的内容

for i in substance:

substanceStr = i.text

writeIntoTxt(fileName, substanceStr)

time.sleep(1)

总结

简单利用了BeautfulSoup的select方法对笔趣阁的网页进行了爬取

近期有很多朋友通过私信咨询有关Python学习问题。为便于交流,点击蓝色自己加入讨论解答资源基地返回搜狐,查看更多

责任编辑:

python最简单的爬取邮箱地址怎么写_用python60行代码写一个简单的笔趣阁爬虫!三分一章?...相关推荐

  1. python最简单的爬取邮箱地址_python3爬取网页中的邮箱地址

    1.爬虫分析 分析结果对: http://xxx.com?method=getrequest&gesnum=00000001 http://xxx.com?method=getrequest& ...

  2. python最简单的爬取邮箱地址_python爬取邮箱的实例代码

    1 # -*- coding: cp936 -*- 2 import urllib2 3 import re 4 from pyquery import PyQuery as pq 5 from lx ...

  3. 爬取京东商品规格和评论,13行代码写成的模板,想爬哪个商品评论就爬哪个

    先看运行效果 上面图片是爬取京东阿玛尼口红的评论和商品规格 下面是13行代码,没错13行就可以了,想爬哪个就输入哪个商品的编号,商品编号在下面图片中找,我在爬取时候发现商品编号在url中有显示,比对之 ...

  4. python最简单的爬取邮箱地址_python简单爬虫,抓取邮箱

    最近,老师给了一个练习是,实现一个爬虫,就爬大概100个网页,匹配出邮箱. 于是,我花了几天时间,熟悉熟悉了python,就有了下面这个超级简单的爬虫程序.各种毛病...... 这里先说明一下,pyt ...

  5. 用python60行代码写一个简单的笔趣阁爬虫!三分一章?

    前言 利用python写一个简单的笔趣阁爬虫,根据输入的小说网址爬取整个小说并保存到txt文件.爬虫用到了BeautifulSoup库的select方法 结果如图所示: 本文只用于学习爬虫 一.网页解 ...

  6. 三百行python代码的项目_使用300行代码创建一个分布式系统

    使用 300 行代码创建一个分布式系统 构建一个分布式系统是很困难的. 它需要可扩展性. 容错性. 高可用性. 一致性. 可伸缩以及高效.为了达到这些目的,分布式系统需要很多复杂的组件以一 种 复杂的 ...

  7. python中data.find_all爬取网站为空列表_利用Golang快速爬取盗版网站的整套音频

    01 前言 最近因为 Zigma 帮我写了个推广 Catcher 小程序软文的原因,答应了他帮他爬了一个盗版音频网站的整套 <李淼谈奇案> . 在制作爬虫脚本的过程中,也是遇到了一些有趣的 ...

  8. Python爬取网站用户手机号_用Python爬虫爬取学校网妹子QQ号,100行代码撩妹,用技术脱单...

    前言: 其实这个项目没什么难度,稍微懂一点爬虫的人或者是已经就业的程序员都可以用自己学的编程语言写出来,但是正是这也原因,也间接证明现在网络很多安全问题的存在,简单的说就是这个网站的程序员偷懒,让用户 ...

  9. python抓取抖音热门视频_要是30行代码!7步教会你Python爬取网页抖音热门视频

    前言 抖音短视频相信大家都听过,也不陌生对吧!可以看到海量的短视频,涵盖了各大行业.个人觉得抖音有毒,刷着刷着根本停不下来,一看时间就是凌晨3.4点.今天带大家爬取抖音网页版的视频数据!一睹为快吧 本 ...

  10. python编程:电话簿TeleAddressBook和邮箱地址簿EmailAddressBook两个文件,合并为一个完整的AddressBook文件

    有电话簿TeleAddressBook和邮箱地址簿EmailAddressBook两个文件,使用字典结构将其合并为一个完整的AddressBook文件 . 变为: 代码如下: # -*- coding ...

最新文章

  1. linux 查找清理大文件
  2. 零代码如何打造自己的实时监控预警系统
  3. 苹果怎么付费购买内存_【苹果手机多长时间清理一次内存,怎么清理?】
  4. 3-1:常见任务和主要工具之软件包管理
  5. houghcircle函数_Hough Circle 变换
  6. VS2012--应用程序无法正常启动0xc000007b 的错误
  7. Java基础知识总结(2021版)
  8. mac使用被动ftp模式(pasv)_flashfxp连接失败,flashfxp连接失败的原因及好用的ftp工具下载...
  9. [html] 网页打印与标准纸张换算时,cm和px是如何换算的?
  10. 【Java从0到架构师】学习记录
  11. mysql 免安装版安装
  12. 笔记本装双系统!win10+Linux!所有的坑自己一个个爬过来,纪念一下。
  13. Python百宝箱密码锁升级版源代码
  14. PowerPoint课件动画制作三例
  15. 手机端APP活体真活人检测扫描人脸识别SDK之张嘴摇头眨眼点头确认真人非图片...
  16. 深度学习图像标注软件LabelMe使用方法
  17. c++中获得对象类型 typeid 与 type_info
  18. java解析sql语句简书,Mybatis原理解析(一)--java.sql数据库操作的基本实现方式
  19. 解决failed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpected status co
  20. 用MDK:test.axf: Error: L6630E: Invalid token start expected number or ( but found

热门文章

  1. 【TSP】基于matlab遗传算法求解旅行商问题【含Matlab源码 1337期】
  2. 【人脸表情识别】基于matlab GUI CNN人脸表情识别【含Matlab源码 787期】
  3. 【TSP】基于matlab混合粒子群算法求解旅行商问题【含Matlab源码 397期】
  4. 【路径规划】基于matalb遗传算法机器人栅格地图路径规划【含Matlab源码 022期】
  5. SPSS缺失值处理【SPSS 009期】
  6. Pycharm中更改镜像源
  7. linux git 撤销删除文件,git 撤销回滚学习
  8. null怎么insert oracle,Oracle:如果行不存在,如何INSERT
  9. fatal error: libmemcached/memcached.h: No such file or directory
  10. java udp传输文件6_文件传输udpjava数据