python爬取小说

news/2024/10/18 1:28:35/

import requests
from lxml import etree
import time
Main_url=“https://www.biquge9.com”
def Get_Url(url):#获取主页
header ={“User-Agent”:“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54”}
re=requests.get(url,headers=header)
return re
def download_noval(noval_url):
global Main_url
e=etree.HTML(noval_url)
data=e.xpath(“//div[@class=‘listmain’]/dl/dd/a/@href”)
first_noval_url= str(Main_url+data[0])#获取第一个章节的url
noval_end=str(data[len(data)-1])
del data#删除列表
noval_end_pos=int(str(noval_end.rindex(‘/’)))#获取最后章节中最后一个/的位置
noval_start_pos=int(str(first_noval_url.rindex(‘/’)))#获取第一章节中最后一个/的位置
noval_start=int(first_noval_url[noval_start_pos+1:first_noval_url.rindex(‘.’)])#截取第一章的页数
noval_end=int(noval_end[noval_end_pos+1:noval_end.rindex(‘.’)])#截取最后一章的页数
noval_ulr_list=[]
for i in range(noval_start,noval_end+1):#由于是半开半闭区间所以+1 以防最后一章获取不到
noval_ulr_list.append(first_noval_url[:noval_start_pos+1]+str(i)+‘.html’)#+1为了获取到/,组成完整的url地址
# print(noval_ulr_list)
def download(url):
# url=“https://www.biquge9.com/book/1460/1.html”
data=Get_Url(url).text
e=etree.HTML(data)
title=str(e.xpath(“//h1/text()”))
content=title+‘\n’+str(e.xpath(‘//div[@id=“chaptercontent”]/text()’))
# print(title,‘\n’,str(content).replace(‘\u3000’,’ ‘))
print(f"downloading {title} \n")
with open(“test.txt”,‘a+’,encoding=‘utf8’) as f:
f.write(str(content).replace(’‘’,‘’‘,’\n’))
f.close()
count=0
for i in noval_ulr_list:
count+=1
download(i)
if count%10==0:
time.sleep(0.09)

def downloaded_url(url):
global Main_url
e=etree.HTML(url)
data=e.xpath(‘//div[@class=“bookbox”][1]/div/div/a/@href’)#选取第一个作为本次任务
url=Main_url+data[0]#data类型为list+原本网址
# print(url)
download_noval(Get_Url(url).text)

novel_name =“完美世界”
url=f"https://www.biquge9.com/s?q=%{novel_name}"
result=Get_Url(url).text
downloaded_url(result)


http://www.ppmy.cn/news/742999.html

相关文章

java中 像素、英寸、厘米的换算

这两天用swing写打印,不知道怎么调打印纸张大小,setSize(width, height)里面的参数的单位是点(像素),不知道怎么转成厘米。但是从下载的资料里都看到这样一句:页面大小以点为计量单位,1点为1英才的1/72,1英…

C语言如何创建和使用多文件项目,并进行模块化开发?

首先,让我解释一下什么是多文件项目和模块化开发。当你的代码变得越来越复杂时,将所有的代码都放在一个文件里会变得非常混乱。这时,你可以将不同的功能或模块放在不同的文件中,每个文件负责一个特定的任务。这样做不仅使代码更易…

2-1. 厘米换算英尺英寸

如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(footinch/12)*0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。 输入格式: 输入在一行中给出1个正整数…

RK android13默认横屏

实现 默认横屏有两套方案 : 第一种方式:目录 device/rockchip/rk356x/BoardConfig.mk SF_PRIMARY_DISPLAY_ORIENTATION := 90 # For Recovery Rotation recovery界面 TARGET_RECOVERY_DEFAULT_ROTATION ?= ROTATION_RIGHT 实际上 build/make/core/Makefile ifdef TARGE…

JavaWeb学习笔记1

目录 web标准 三个组成部分 HTML 标题标签 水平线标签 换行标签 图片标签 布局标签: 超链接标签 属性: 视频标签: 音频标签: 段落标签: 文本加粗标签: 表格标签 表单标签 表单项 CSS Css引入方式…

解决微信中下载APP

微信是目前超高活跃度的app稳稳第一名,是目前最具营销价值的营销渠道之一。 很多朋友应该都遇到过这样的问题,微信中是无论是扫描二维码下载还是下载页链接下载apk(APP),都是无法下载的,我们要怎么解决这个…

微信环境中无法下载APP的解决方案

来源分析 商业分析在微信的使用人数已经高居各通讯APP的榜首的同时,微信成为了我国移动流量最大的平台之一。在次趋势的引导下,很多的商家、体户便抓住了这一机遇,利用微信这个渠道来做产品的推广、以及营销方案宣传。但是好景不长&#xff…

微信不给下载app如何解决

做微信营销活动或者APK下载推广时候,域名经常被封,如何做到微信中正常使用呢?这就要借助一些工具来实现有效的操作。 之前公司有一个新的APP项目上线,让我们在项目首页做个二维码,然后用户用手机扫一扫就能下载了。但…