爬取飞卢小说免费的小说内容

import requests

import parsel
import re
import os

url = 'https://b.faloo.com/724903.html'
headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
response_1 = requests.get(url=url,headers=headers)
response_1.encoding = response_1.apparent_encoding
select_1 = parsel.Selector(response_1.text)
href_list = select_1.css('.DivTd3 a::attr(href)').getall()
Title = select_1.css('#novelName::text').get()
print(Title)
print(href_list)
filename = f'{Title}\\'
if not os.path.exists(filename):
    os.mkdir(filename)
for href in href_list:
    href = 'https:'+href
    headers = {
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
    }
    response = requests.get(url=href,headers=headers)
    response.encoding = response.apparent_encoding
    # print(response.text)
    selector = parsel.Selector(response.text)
    title = re.findall('<h1>玄幻:我!天命大反派   (.*?)</h1>',response.text)[0]
    content = '\n'.join(selector.css('.noveContent p ::text').getall())
    with open(filename+title+'.txt',mode='w',encoding='utf-8') as f:
        f.write(content)

结果展现:

总结:

1.几个快捷进入开发者工具的指令: 

打开开发者工具方法:F12(键盘)/fn+f12/ctrl+shift+i

2.列表转字符串方法:

str.join(列表)

如'\n'.join(selector.css('.noveContent p ::text').getall())

### 编写Python爬虫抓取小说网的数据 #### 准备工作 为了成功抓取小说网站的内容,需先安装必要的库。`requests`用于发送HTTP请求;`BeautifulSoup`来自`bs4`包,用来解析HTML文档。 ```bash pip install requests beautifulsoup4 ``` #### 发送HTTP请求 利用`requests.get()`方法向目标网址发起GET请求,并获取响应内容。这里假设要访问的是小说首页或某个具体的小说页面URL[^1]。 ```python import requests url = 'https://www.feilu.com/' # 替换成实际的目标链接 response = requests.get(url) html_content = response.text ``` #### 解析网页结构 使用`BeautifulSoup`对象来加载下载下来的HTML文本,指定解析器为`lxml`或默认的`html.parser`。接着可以根据特定标签和属性定位所需的信息节点,比如章节列表、文章标题等。 ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html_content, 'html.parser') titles = soup.find_all('div', class_='title') # 假设小说标题位于此类名为"title"的<div>内 for title in titles: print(title.string.strip()) ``` #### 处理分页情况 当面对多页结果时,通常会在URL中加入参数控制翻页行为,如?page=2表示第二页。此时可以在循环体内修改URL重新调用上述过程直到遍历完毕所有页面。 #### 正则表达式的应用 对于更复杂的模式匹配任务,则可借助于正则表达式模块`re`完成精准提取。例如,在处理含有不确定字符数量的情况时,采用非贪婪模式(`.*?`)能够有效减少误判率[^2]。 ```python import re pattern = r'我(.*?)爬虫' matches = re.findall(pattern, html_content) print(matches) ``` 需要注意的是,编写任何类型的Web Scraper之前都应该仔细阅读目标站点的服务条款(Terms of Service),确保操作合法合规,尊重版权方权益以及遵循robots.txt文件指示限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学习各种软件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值