大佬原文链接,一定要看看,收获很大~~~~
https://blog.csdn.net/c406495762/article/details/78123502

看完大佬的第一个爬取《一念永恒》小说的代码后,发觉:

1、小说网站失效了

2、爬取代码不显示中文

3、大多数网站不能够一次性爬取全部连接

一、这里我写下百度了个比较容易爬的网站

网站:https://www.qu.la/book/
一念永恒的链接:https://www.qu.la/book/16431/

二、对get请求后的数据(req)加上 req.encoding = ‘utf-8’

三、从这个网站上看,发觉每个网页只显示20个链接,观察每一页的网址可以发现,每一页的链接

https://www.qu.la/book/16431/index_X.html(X表示页数,从1到67页(至于我为什么知道是67页,是因为我按到了最后一页))

上图发现只有20个链接




这三张图可以发现出链接的规律

3.1 一是定位链接:


这里的话,我是用ul 定位 class_ 的属性section-list,这时可以观察到是数组的第二个值

div = div_bf.find_all('ul',class_='section-list') #修改
a_bf = BeautifulSoup(str(div[1])) #数组的第二个值,数组是从0开始

3.2 二是爬取链接:

解决如何爬取67页链接的问题:

3.2.1 使用for循环,每次循环的 i 值,将链接给拼接到一起
    for i in range(67):#【i从0到66】server = 'https://www.qu.la/book/16431/index_'+ str(i+1)+'.html'
3.2.2 解决总链接数的问题:
def get_download_url(self):a_all = 0 #链接总数for i in range(67):url = self.target + 'index_' + str(i+1)+'.html'req = requests.get(url)req.encoding = 'utf-8'html = req.textdiv_bf = BeautifulSoup(html)div = div_bf.find_all('ul',class_='section-list') #修改a_bf = BeautifulSoup(str(div[1]))a = a_bf.find_all('a')a_all += len(a) #加上每一页的a的链接for each in a:self.names.append(each.string)self.urls.append(self.server + each.get('href')) self.nums = a_all #得到链接总数

最后效果:

全部代码:

from bs4 import BeautifulSoup
import requests,sys
"""类说明:下载《笔趣阁》网小说《一念永恒》Parameters:无Retures:无Modify:2021年3月6日
"""
class downloader(object):def __init__(self):self.server = 'https://www.qu.la/' #修改self.target = 'https://www.qu.la/book/16431/' #修改self.names = [] #章节名self.urls = []  #存放章节链接self.nums = 0  #章节数"""函数说明:获取下载链接Parameters:无Returns:无Modify:2021年3月6日"""def get_download_url(self):a_all = 0 #链接总数for i in range(67):url = self.target + 'index_' + str(i+1)+'.html'req = requests.get(url)req.encoding = 'utf-8'html = req.textdiv_bf = BeautifulSoup(html)div = div_bf.find_all('ul',class_='section-list') #修改a_bf = BeautifulSoup(str(div[1])) #得到数组的第二个值a = a_bf.find_all('a')a_all += len(a) #加上每一页的a的链接for each in a:self.names.append(each.string)self.urls.append(self.server + each.get('href')) self.nums = a_all  #得到链接总数"""函数说明:获取章节内容Paramters:target - 下载内容(string)Returns:texts - 章节内容(string)Modify:2021年3月6日"""def get_contents(self,target):req = requests.get(url = target)req.encoding = 'utf-8' #增加,对代码进行utf-8格式的转化 html = req.textbf = BeautifulSoup(html)texts = bf.find_all('div',class_ = 'content') #修改texts = texts[0].text.replace('\xa0','\n') #部分修改return texts"""函数说明:将爬取的文章写入文件Parameter:name - 章节名称(string)path - 当前路径下,小说保存名称(string)text - 章节内容(text)Returns:无Modify:2021年3月7日"""def writer(self,name,path,text):write_flag = Truewith open(path,'a',encoding='utf-8') as f:f.write(name+'\n')f.writelines(text)f.write('\n\n')
if __name__ == '__main__':dl = downloader()dl.get_download_url()print('《一念永恒》开始下载: ')print(dl.nums)for i in range(dl.nums):dl.writer(dl.names[i],'一念永恒.txt',dl.get_contents(dl.urls[i]))print("已下载第"+ str(i+1) +"章:%.3f%%" % float(i/dl.nums) + '\r')sys.stdout.write("已下载:%.3f%%" % float(i/dl.nums) + '\r')sys.stdout.flushprint("《一年永恒》下载完成")

可以的话,点个赞谢谢~~~

Python3网络爬虫快速入门实战解析——对大佬部分代码失效的修改相关推荐

  1. Python3网络爬虫快速入门实战解析(一小时入门 Python 3 网络爬虫)

    Python3网络爬虫快速入门实战解析(一小时入门 Python 3 网络爬虫) https://blog.csdn.net/u012662731/article/details/78537432 出 ...

  2. python3 爬虫实例_【实战练习】Python3网络爬虫快速入门实战解析(上)

    原标题:[实战练习]Python3网络爬虫快速入门实战解析(上) 摘要 使用python3学习网络爬虫,快速入门静态网站爬取和动态网站爬取 [ 前言 ] 强烈建议:请在电脑的陪同下,阅读本文.本文以实 ...

  3. Python3网络爬虫快速入门实战解析

    Python3网络爬虫快速入门实战解析 标签: python网络爬虫 2017-09-28 14:48 6266人阅读 评论(34) 收藏 举报 分类: Python(26) 作者同类文章X 版权声明 ...

  4. Python3 网络爬虫快速入门实战解析

    点击上方"Python高校",关注 文末干货立马到手 作者:Jack Cui http://cuijiahua.com/blog/2017/10/spider_tutorial_1 ...

  5. Python 爬虫---(7) Python3网络爬虫快速入门实战解析

    转载请注明作者和出处: http://blog.csdn.net/c406495762  Github代码获取:https://github.com/Jack-Cherish/python-spide ...

  6. Python教程:网络爬虫快速入门实战解析

    建议: 请在电脑的陪同下,阅读本文.本文以实战为主,阅读过程如稍有不适,还望多加练习. 网络爬虫简介 网络爬虫,也叫网络蜘蛛(Web Spider).它根据网页地址(URL)爬取网页内容,而网页地址( ...

  7. beautifulsoup网页爬虫解析_Python3 网络爬虫快速入门实战解析

    点击上方"Python高校",关注 文末干货立马到手 作者:Jack Cui http://cuijiahua.com/blog/2017/10/spider_tutorial_1 ...

  8. python3.7快速入门_PYTHON 3.7网络爬虫快速入门

    Python 3.7正在成为目前流行的编程语言,而网络爬虫又是Python网络应用中的重要技术,二者的碰撞产生了巨大的火花.本书在这个背景下编写而成,详细介绍Python 3.7网络爬虫技术. 本书分 ...

  9. python——网络爬虫快速入门【reuqests篇】

    2.3 pip的使用和虚拟环境的介绍 pip 是一个现代的,通用的 Python 包管理工具.提供了对 Python 包的查找.下载.安装.卸载的功能. 官方提供的pip 示例 $ pip insta ...

最新文章

  1. 爬取了1W个字节跳动岗位信息,我发现了什么?
  2. BugKuCTF——web基础$_GET
  3. 致盗窃,抄袭有三AI内容以及不可理喻的读者
  4. Verilog | HDL LCD显示(代码类)
  5. boost::movelib::default_delete相关用法的测试程序
  6. 详谈如何定制自己的博客园皮肤【转】
  7. Ubuntu NFS搭建过程
  8. leetcode97 交错字符串
  9. 计算机双语论文,计算机双语论文
  10. windows桌面的“我的电脑”“IE”等消失的解决方法
  11. 设为首页收藏本站js代码(引自ecshop模板堂(ecmoban.com)
  12. 电脑翻页时钟屏保Fliqlo
  13. Python Google关键词搜索 Google人机验证
  14. asp.net实现一个简易购物车功能。
  15. C++14新特性:deprecated的含义与使用?
  16. iOS 学习视频 资料集合 (视频 +博客)
  17. Causal Representation Learning for Out-of-Distribution Recommendation
  18. 【Linux Centos6/7连接Oracle11g数据库,提示:ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务】
  19. 本科去向选择之一——工作
  20. 利用html完成简单的登录网站页面

热门文章

  1. Ubuntu 下 Eclipse 桌面图标创建
  2. 学习 MFC 的好网站
  3. 华尔街日报评2010科技创新奖
  4. mysqlinsert触发器的创建
  5. linux用户管理和文件权限
  6. iOS 5 Storyboard 学习之 Tabbar Controller,Navigation Controller
  7. 240多个jQuery插件 功能强大 齐全
  8. StringBuilder和String有哪些区别?
  9. mysql show的用法
  10. erlang一次线上问题解决