import requests
from lxml import etree
import time
import random
from bs4 import BeautifulSoup
import re
import jieba
import jieba.analyse
from collections import Counter
import wordcloud as wc
import matplotlib.pyplot as plt
# 获取下一页链接的函数
def next_url(next_url_element):
nxturl = 'https://www.xrqki.cc/books/17474/'
# rfind('/') 获取最后一个'/'字符的索引
index = next_url_element.rfind('/') + 1
nxturl += next_url_element[index:]
return nxturl
# 请求头,需要添加你的浏览器信息才可以运行
headers= {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 SLBrowser/9.0.0.10191 SLBChan/105"
}
#
# # 小说主页
main_url = "https://www.xrqki.cc/books/17474/"
# # 使用get方法请求网页
main_resp = requests.get(main_url, headers=headers)
# # 将网页内容按utf-8规范解码为文本形式
main_text = main_resp.content.decode('utf-8')
# # 将文本内容创建为可解析元素
main_html = etree.HTML(main_text)
bookTitle = main_html.xpath('/html/body/div[1]/div/div[2]/div/h1/text()')[0]
author = main_html.xpath('/html/body/div[1]/div/div[2]/div/div[1]/span/text()')[0]
update = main_html.xpath('/html/body/div[1]/div/div[2]/div/div[2]/span/text()')[0]
introduction = main_html.xpath('/html/body/div[1]/div/div[2]/div/div[3]/p/text()')[0]
# # 调试期间仅爬取六个页面
# maxPages = 95
cnt = 0
# # 记录上一章节的标题
lastTitle = ''
# # 爬取起点
url = 'https://www.xrqki.cc/books/17474/431556.html'
#
# # 爬取终点
endurl = 'https://www.xrqki.cc/books/17474/431570.html'
while url != endurl:
cnt += 1 # 记录当前爬取的页面
resp = requests.get(url, headers)
html_content=resp.text
soup=BeautifulSoup(html_content,'lxml')
articles=soup.find_all('article')
for atricle in articles:
contents=atricle.get_text()
text = resp.content.decode('utf-8')
html = etree.HTML(text)
title = html.xpath('//*[@id="ss-reader-main"]/div[2]/h1/text()')[0]
# 输出爬取进度信息
print("第 {}页, 标题:{}, 网址: {}".format(cnt, title, url))
with open(bookTitle + '.txt', 'a', encoding='utf-8') as f:
if title != lastTitle: # 章节标题改变
f.write('\t\t\t\t')
f.write(title) # 写入新的章节标题
f.write('\n\n')
lastTitle = title # 更新章节标题
f.write(contents)
f.write('\n\n')
f.close()
# 获取"下一页"按钮指向的链接
next_url_element = html.xpath('//*[@id="next_url"]/@href')[0]
# 传入函数next_url得到下一页链接
url = next_url(next_url_element)
print("爬取完成")
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1、所实现的项目内容(文字简要描述,以要点的形式表述); (1)实现了对小说资源的爬取将爬取的小说内容存在txt文件中。 (2)使用正则表达将文本内容中的特色符号过滤掉。 (3)使用jieba库进行分词和关键字提取,并对字符串和文本进行处理(统计段落数、行数、句子数、总词语数、出现频次最高的前30个词语) (4)使用jieba库进行分词和关键词提取,并使用wordcloud和matplotlib.pyplot库生成词云图。 (5)输出爬取进度信息。 2、实验过程 (1)导入所需的库,确保这些库已经安装在你的Python环境中。 (2)替换代码中的main_url、headers、url和endurl变量,分别为你要爬取的小说主页链接、请求头信息、起点链接和终点链接。 (3)运行代码,程序将发送HTTP请求获取小说主页的内容,并解析出小说的标题、作者、更新信息和简介。 (4)程序将自动爬取小说的每个章节内容,并将内容保存到以小说标题命名的文本文件中。 (5)在爬取过程中,程序将输出爬取进度信息,显示当前爬取的页面数、章节标题和链接。 (6)爬取完成后,程序将输出“爬取完成”的提示信息。
资源推荐
资源详情
资源评论
收起资源包目录
爬虫.rar (2个子文件)
爬虫
main.py 3KB
ciyun.py 2KB
共 2 条
- 1
资源评论
小A远离BUG
- 粉丝: 752
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功