初步实现 python 爬取小说,实现不规则页面的翻页爬取
在写爬虫的时候,我们会遇到有的网页链接是不规则的。今天我写爬虫练习的时候,就遇到了这个情况。后来我发现用 lxml 可以很好的去出链接,然后我灵光一闪,就去试了试,果然。把每次找到的链接传给一个成员变量保存,这样就可以直接在下次爬取的时候调用这个变量去访问下一个要爬取的页面了
# -*- coding = utf-8 -*- # @Time : 2021/11/1 17:19 # @Author : 海绵摆摆嘉心糖 # @File : 笔趣阁_一剑独尊.py # @Software : PyCharm import time import requests import os from lxml import etree name = "牛马小说_一剑独尊/" url_end = "/book/4652/1.html" def main(): # 定义首页的 URL baseurl = "https://www.biquge7.com" get_data(baseurl) def get_data(baseurl): global url_end for i in range(2535): url = baseurl + url_end # 调用请求函数获取网页信息 html = get_html(url) # 对返回的信息进行解析 xml = etree.HTML(html) # 获取章节标题 h1_title = xml.xpath('.//div[@class="book reader"]/div[@class="content"]/h1[@class="wap_none"]/text()') # 获取下一页的链接 next_href = xml.xpath('.//div[@class="book reader"]/div[@class="content"]/div[@class="Readpage pc_none"]/a[@class="Readpage_down js_page_down"]/@href') # 获取正文内容 text = xml.xpath('//*[@id="chaptercontent"]/text()') if not os.path.exists(name): print(f"没有{name}这个目录,正在创建>>>>>>>>>") os.mkdir(name) with open(f"{name}{h1_title[0]}.txt", "w", encoding="utf-8") as file_obj: for t in text: file_obj.write(f"{t}\n") print(f"{h1_title[0]}的爬取已完成,正在进入下一章的爬取>>>>>>>>>>>>>") url_end = next_href[0] # 休眠一秒后执行 time.sleep(1) def get_html(url): # 头部信息,告诉服务器你是以什么样的身份去访问它 user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36" # 定义头部信息 headers = {"User-Agent": user_agent} # 定义一个字符串变量,用来接收网页信息 html = " " try: # 用 get 的方式请求网页 response = requests.get(url=url, headers=headers) # 如果出现异常主动报出异常 response.raise_for_status() # 解码 html = response.content.decode("utf-8") except requests.RequestException as e: # 打印异常信息 print(e) return html if __name__ == '__main__': main() print("end>>>>>")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix