Python爬虫之起点中文网完本小说 您所在的位置:网站首页 起点完本小说 Python爬虫之起点中文网完本小说

Python爬虫之起点中文网完本小说

2024-06-30 12:28| 来源: 网络整理| 查看: 265

任务 爬取起点中文网前5页(页数可改)完本小说将爬取到的小说名字、作者、链接以及相关简介保存到一个excel表格中 分析

在这里插入图片描述 通过检查网页的源码可知,浏览器发起的是get请求,返回的数据类型是text/html。因此可以调用requests模块中的get() 函数得到页面源码数据

headers = { 'User-Agent': 'Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 86.0.4240.198Safari / 537.36' } param = { 'page': page_num } url = 'https://www.qidian.com/finish?action=hidden&orderId=&style=1&pageSize=20&siteid=1&pubflag=0&hiddenField=2&' response = requests.get(url=url, params=param, headers=headers) page_data = response.text

(由于刚刚接触爬虫,这里遇到了一个问题: 当得到page_data数据后,对其进行打印显示,发现页面源码缺少本次任务的关键内容,即小说的所有数据都不在页面源码中。但是当将其保存为一个html文件,再打开,并创建一个BeautifulSoup对象后,再对其进行打印,小说的有关数据又会显示出来,这一点不是太明白,希望看到此文的朋友可以讲解一下原理。)

file = open('qidian.html', 'r', encoding='utf-8') soup = BeautifulSoup(file, 'lxml')

得到BeautifulSoup对象soup后,就可以用正则表达式对要爬取的内容进行提取。每得到一个数据,就将其保存在一个列表中,最后对excel表格进行操作,就可将数据进行永久化存储。

完整代码 # -*- coding = utf-8 -*- # @Time : 2020/12/27 11:17 # @author: 农夫三犭 # @File : main.py # @Software:PyCharm import requests import re from bs4 import BeautifulSoup import xlwt # 小说链接 findLink = re.compile(r'(.*?)|') # 小说简介 findIntroduce = re.compile(r'

(.*?)

', re.S) if __name__ == '__main__': savepath = "起点小说完结.xls" datalist = [] headers = { 'User-Agent': 'Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 86.0.4240.198Safari / 537.36' } url = 'https://www.qidian.com/finish?action=hidden&orderId=&style=1&pageSize=20&siteid=1&pubflag=0&hiddenField=2&' for page_num in range(1, 6): # 前5页内容 page_num = str(page_num) param = { 'page': page_num } response = requests.get(url=url, params=param, headers=headers) page_data = response.text with open('./qidian.html', 'w', encoding='utf-8') as fp: fp.write(page_data) file = open('qidian.html', 'r', encoding='utf-8') soup = BeautifulSoup(file, 'lxml') for item in soup.find_all('div', class_='book-mid-info'): data = [] item = str(item) # 必须先转换为字符串 # 小说名字 name = re.findall(findName, item)[0] data.append(name) # 小说作者 author = re.findall(findAuthor, item)[0] data.append(author) # 小说链接 link = re.findall(findLink, item)[0] link = 'https' + link data.append(link) # 小说简介 introduce = re.findall(findIntroduce, item) introduce = [x.strip() for x in introduce if x.strip() != ''][0] # 去除列表中的空格和换行 data.append(introduce) datalist.append(data) book = xlwt.Workbook(encoding="utf-8") # 创建workbook对象 sheet = book.add_sheet('起点小说完本', cell_overwrite_ok=True) # 创建工作表 column = ("小说名字", "小说作者", "小说链接", "小说简介") # 元组 for i in range(0, 4): sheet.write(0, i, column[i]) # 列名 for i in range(0, len(datalist)): print(f"第{i + 1}条写入成功") datas = datalist[i] for j in range(0, 4): sheet.write(i + 1, j, datas[j]) # 数据 book.save(savepath)

(刚开始学爬虫,不足之处还请大家多多指教)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有