当前位置: 首页 > news >正文

报名网站开发多钱全国疫情排行榜

报名网站开发多钱,全国疫情排行榜,设计制作小车教学反思,网络营销的目标目录前言环境数据来源分析代码实现过程前言 室友喊着没有小说看,让我给他推荐几本,最初寻思我也不看啊,但这能难倒我? 分分钟就用python给他把整个网站的小说都给下载下来了,不愧是我啊! 话不多说&#…

目录

  • 前言
    • 环境
      • 数据来源分析
      • 代码实现过程

前言

室友喊着没有小说看,让我给他推荐几本,最初寻思我也不看啊,但这能难倒我?

分分钟就用python给他把整个网站的小说都给下载下来了,不愧是我啊!

话不多说,我们直接开整!
在这里插入图片描述

环境

python 3.6 解释器
pycharm 编辑器 专业版 是需要激活码

requests >>> pip install requests
parsel >>> pip install parsel
pandas >>> pip install pandas
tqdm >>> pip install tqdm

数据来源分析

  1. 确定需求

    爬取小说内容
    进行搜索功能 (当输入一本小说名字或者作者选择下载相应的小说内容)
    2. 数据来源分析

代码实现过程

发送请求 对小说章节列表页发送请求

获取数据 获取网页源代码 (响应体的文本数据response.txt)

解析数据 提取小说名字 / url地址

发送请求 对小说章节url地址发送请求

获取数据 获取网页源代码 (响应体的文本数据response.txt)

解析数据 提取小说的内容 / 小说章节名

保存数据

实现一个搜索功能


import requests  # pip install requests
import parsel  # 数据解析 pip install parsel
import pandas as pd # pip install pandas
from tqdm import tqdm  # pip install tqdmheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'
}def get_response(html_url):'''发送请求'''response = requests.get(url=html_url, headers=headers)response.encoding = response.apparent_encodingreturn responsedef save(name, title, content):"""保存小说"""with open(name + '.txt', mode='a', encoding='utf-8') as f:f.write(title)f.write('\n')f.write(content)f.write('\n')# print(title)def get_novel_url(html_url):"""获取小说章节url"""response = get_response(html_url)# 把获取到的html字符串数据 转成 selector 对象selector = parsel.Selector(response.text)name = selector.css('#info h1::text').get()href = selector.css('#list dd a::attr(href)').getall()# https://www.biquges.com/10_10770/6896120.htmlhref = ['https://www.biquges.com/' + i for i in href]for index in tqdm(href):"""获取小说的内容"""response = get_response(index)selector = parsel.Selector(response.text)title = selector.css('.bookname h1::text').get()# getall() 获取所有的标签内容 返回的是列表 get 获取一个 返回的是字符串content_list = selector.css('#content::text').getall()# 把列表转换成字符串content = ''.join(content_list)save(name, title, content)#python学习群:748989764if __name__ == '__main__':# url = 'https://www.biquges.com/10_10770/index.html'# get_novel_url(url)# print(response.text)while True:print('输入0即可退出程序')word = input('请输入你要下载的小说名字(作者): ')if word == '0':breaksearch_url = 'https://www.biquges.com/modules/article/search.php'data = {'searchkey': word,'searchtype': 'articlename'}response_1 = requests.post(url=search_url, data=data, headers=headers)response_1.encoding = response_1.apparent_encodingselector_1 = parsel.Selector(response_1.text)# 第一次提取trs = selector_1.css('#nr')lis = []if trs:for tr in trs:novel_name = tr.css('td:nth-child(1) a::text').get()novel_id = tr.css('td:nth-child(1) a::attr(href)').get().replace('/', '')author = tr.css('td:nth-child(3)::text').get()dit = {'书名': novel_name,'作者': author,'书ID': novel_id,}lis.append(dit)print(f'一共搜索到{len(lis)}数据内容')search_result = pd.DataFrame(lis)print(search_result)num = input('请输入你要下载的小说序号: ')# 序号对应的就是列表里面索引位置num_id = lis[int(num)]['书ID'] # 直接获取小说IDlink_url = f'https://www.biquges.com/{num_id}/index.html'get_novel_url(link_url)print(f"{lis[int(num)]['书名']}已经下载完成了")else:print('抱歉,搜索没有结果^_^')
http://www.lbrq.cn/news/2552491.html

相关文章:

  • wordpress单页主题营销无锡seo关键词排名
  • 找个免费的网站这么难吗海外seo
  • 外贸网站建设加推广宁波seo运营推广平台排名
  • 腾飞网站建设站长之家网站排行榜
  • 租车网站建设方案google官网浏览器
  • 宣传片拍摄实施方案新的seo网站优化排名 网站
  • 网站设计机构成都黑帽seo
  • 洛阳市住房和城乡建设委员会网站6免费网站推广工具
  • wordpress 文章id 链接河北seo人员
  • 建设论坛网站2022年7到8月份的十大新闻
  • 百度云网站建设教程视频宁波网络推广平台
  • 怎样在绍兴e网做网站品牌公关
  • 游戏企业用什么程序做网站海南百度竞价推广
  • 成品在线网站免费入口少儿编程
  • 名匠装饰苏州优化网站公司
  • 真人做a视频网站seo服务商
  • wordpress 制作网站模板企业营销策划包括哪些内容
  • 北京网站制作培训班站长统计app软件下载2021
  • 北京国税局网站做票种核定时企业网络营销方案策划
  • 数据查询网站模板淘宝seo 优化软件
  • 政府网站建设实施意见什么软件能搜索关键词能快速找到
  • 一个人可以做网站网络推广主要做什么
  • 做平面设计兼职的网站关键词搜索工具
  • 网站 设计 案例 简单南京seo全网营销
  • 河南手机网站建设公司哪家好天琥设计培训学校官网
  • 衡水做wap网站建设2021年热门关键词
  • 怎么创网站赚钱手机百度云网页版登录
  • 网站访问速度 云组机口碑营销的前提及好处有哪些
  • 企业网站做优化网站seo诊断报告怎么写
  • 做礼品建什么网站微信引流推广
  • 学习游戏制作记录(各种水晶能力以及多晶体)8.1
  • Docker状况监控
  • AI 重塑软件产业:从技术革命到生态重构
  • 【LeetCode 热题 100】4. 寻找两个正序数组的中位数——(解法一)线性扫描
  • 在Trae中使用MoonBit月兔
  • BT131-800-ASEMI家电领域专用BT131-800