摘要:刚学爬虫不久,迫不及待的找了一个网站练手,新笔趣阁一个小说网站。继续学习,有改进方案的欢迎提出来,一起交流。
刚学Python爬虫不久,迫不及待的找了一个网站练手,新笔趣阁:一个小说网站。
前提准备安装Python以及必要的模块(requests,bs4),不了解requests和bs4的同学可以去官网看个大概之后再回来看教程
爬虫思路刚开始写爬虫的小白都有一个疑问,进行到什么时候爬虫还会结束呢?答案是:爬虫是在模拟真人在操作,所以当页面中的next链接不存在的时候,就是爬虫结束的时候。
1.用一个queue来存储需要爬虫的链接,每次都从queue中取出一个链接,如果queue为空,则程序结束具体代码
2.requests发出请求,bs4解析响应的页面,提取有用的信息,将next的链接存入queue
3.用os来写入txt文件
需要把域名和爬取网站对应的ip 写入host文件中,这样可以跳过DNS解析,不这样的话,代码运行一段时间会卡住不动
""" 抓取新笔趣阁https://www.xbiquge6.com/单个小说 爬虫线路: requests - bs4 - txt Python版本: 3.7 OS: windows 10 """ import requests import time import sys import os import queue from bs4 import BeautifulSoup # 用一个队列保存url q = queue.Queue() # 首先我们写好抓取网页的函数 def get_content(url): try: headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36", } r = requests.get(url=url, headers=headers) r.encoding = "utf-8" content = r.text return content except: s = sys.exc_info() print("Error "%s" happened on line %d" % (s[1], s[2].tb_lineno)) return " ERROR " # 解析内容 def praseContent(content): soup = BeautifulSoup(content,"html.parser") chapter = soup.find(name="div",class_="bookname").h1.text content = soup.find(name="div",id="content").text save(chapter, content) next1 = soup.find(name="div",class_="bottem1").find_all("a")[2].get("href") # 如果存在下一个章节的链接,则将链接加入队列 if next1 != "/0_638/": q.put(base_url+next1) print(next1) # 保存数据到txt def save(chapter, content): filename = "修罗武神.txt" f =open(filename, "a+",encoding="utf-8") f.write("".join(chapter)+" ") f.write("".join(content.split())+" ") f.close # 主程序 def main(): start_time = time.time() q.put(first_url) # 如果队列为空,则继续 while not q.empty(): content = get_content(q.get()) praseContent(content) end_time = time.time() project_time = end_time - start_time print("程序用时", project_time) # 接口地址 base_url = "https://www.xbiquge6.com" first_url = "https://www.xbiquge6.com/0_638/1124120.html" if __name__ == "__main__": main()总结
结果蛮成功的吧,就是过程比较慢,程序用时1个半小时。。23333继续学习,有改进方案的欢迎提出来,一起交流。
QQ:1156381157
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/42726.html
摘要:爬虫架构架构组成管理器管理待爬取的集合和已爬取的集合,传送待爬取的给网页下载器。网页下载器爬取对应的网页,存储成字符串,传送给网页解析器。从文档中获取所有文字内容正则匹配后记爬虫基础知识,至此足够,接下来,在实战中学习更高级的知识。 前言 Python非常适合用来开发网页爬虫,理由如下:1、抓取网页本身的接口相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接...
摘要:先打开花千骨小说的目录页,是这样的。网页结构分析首先,目录页左上角有几个可以提高你此次爬虫成功后成就感的字眼暂不提供花千骨全集下载。打开盘查看花千骨文件。 知识就像碎布,记得缝一缝,你才能华丽丽地亮相。 1.Beautiful Soup 1.Beautifulsoup 简介 此次实战从网上爬取小说,需要使用到Beautiful Soup。Beautiful Soup为python的...
摘要:大奉打更人卖报小郎君这个人仙太过正经言归正传从红月开始黑山老鬼稳住别浪跳舞二解析数据是一个可以从或文件中提取数据的库。 目录 一、XPath解析数据 1、XPath解析数据 2、XML的树形结构 3、使用XPath选取节点 4、课堂案例 - 爬取起点小说网 二、BeautifulSoup解析...
摘要:上次用写的爬虫速度很感人,今天打算用框架来实现,看看速度如何。 上次用requests写的爬虫速度很感人,今天打算用scrapy框架来实现,看看速度如何。 爬虫步骤 第一步,安装scrapy,执行一下命令 pip install Scrapy 第二步,创建项目,执行一下命令 scrapy startproject novel 第三步,编写spider文件,文件存放位置novel/spi...
阅读 1771·2021-11-15 11:37
阅读 3043·2021-11-04 16:05
阅读 1910·2021-10-27 14:18
阅读 2741·2021-08-12 13:30
阅读 2485·2019-08-29 14:18
阅读 2076·2019-08-29 13:07
阅读 2004·2019-08-27 10:54
阅读 2713·2019-08-26 12:15