里面用到了requests 和bs4
可以了解了两个函数后在返回看,下面纯属于学习时候的记录
自己瞎琢磨写的!!!
import requests # 访问链接
import re # 正则
print(
'建议进入此网搜索:https://www.xs386.com/\n'
'例如完整的链接是:https://www.xs386.com/26010/17168270.html\n'
'第二个参数输入:70---这里意思是第一章参数是从70开始\n'
'第三个参数输入:80---这里意思是看到第十章后面接的数字是80\n'
'第四个参数输入:1---这里意思是每跳一张他链接数变化是递增1\n'
'第五个参数输入保存路径:\n'
'例如:E:/吞空/\n'
)
int_httml = input("请输入你要访问的网页:")
int_shu1 = input('请输入开始参数:')
int_shu2 = input('请输入停止参数:')
int_shu3 = input('请输入递增参数:')
int_open = input('请输入保存的路径:')
# 获取到的内容
def INTHTTP(url, heads):
try:
r = requests.get(url, headers=heads) # 访问他的网页 GET POST
r.encoding = r.apparent_encoding # 获取的解码形式
ztm = r.status_code # 返回的状态码 200为真
nr = r.text # 返回的内容
return nr
# 获取的nr内容 返回
except:
return ''
from bs4 import BeautifulSoup # 解析
# 将内容进行一个解析并且使用CSS选择器进行筛选
def INT_BeautifulSoup(nr):
try:
web = BeautifulSoup(nr, features='html.parser') # 解析h5格式
# 获取解析的内容
sx_nr = web.select('.box_con > div#content')
#sx_nr= web.select('.box_con > div.bookname') # 使用select 选择器进行筛选
return sx_nr
except: # 如果运行的程序不符合 返回空值
return ''
def INT_BeautifulSoup1(nr):
try:
web = BeautifulSoup(nr, features='html.parser')
# 获取解析的内容
sx_nr = web.select('.box_con > div.bookname > h1') # 使用select 选择器进行筛选
for i in sx_nr:
h1 = i.text
return h1
except: # 如果运行的程序不符合 返回空值
return ''
# 运行的主程序
def main():
heads = {
'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'
}
p = 0
for k in range(int(int_shu1), int(int_shu2), int(int_shu3)):
url = f'{int_httml}{k}.html'
open_read = INTHTTP(url, heads)
fanhui1 = INT_BeautifulSoup1(open_read)
fanhui = INT_BeautifulSoup(open_read)
print(fanhui1)
# [<h1> 第一章 罗峰</h1>]
for i in fanhui:
i1 = i.text
s = re.sub(' ', '' , i1)
s1 = re.sub('\n', '', s)
with open(f'{int_open}{fanhui1}.txt', 'w', encoding='utf-8')as open_1:
open_1.write(s1)
if __name__ == '__main__':
main()