利用Python爬取网页内容

利用Python爬取网页内容一 爬取简单的网页 1 打开 cmd2 安装 requests 模块 输入 pipinstallre 新建一个 py 文件 我们以 https www bqkan com 这个网站为例 以下是爬取斗罗大陆的网页 importreques 导入 requests 包 url https www bqkan com 3 3026 1343656 html strHtml requests get url Get 方式获取网页数据 html strHtml te

一、爬取简单的网页

import requests # 导入requests包 url = 'https://www.bqkan.com/3_3026/1343656.html' strHtml = requests.get(url) # Get方式获取网页数据
html = strHtml.text print(html) 

二、爬取小说的某一章节

1、打开cmd,安装Beautiful Soup,输入pip install beautifulsoup4
2、对爬取出来的数据进行数据清洗,代码如下:

# 爬虫爬取网页 import requests # 导入requests包 from bs4 import BeautifulSoup url = 'https://www.bqkan.com/3_3026/1343656.html' strHtml = requests.get(url) # Get方式获取网页数据
html = strHtml.text bf = BeautifulSoup(html,"html.parser") texts = bf.find_all('div', class_='showtxt') print(texts[0].text.replace('\xa0'*8,'\n\n')) 

三、爬取整本小说

import requests # 导入requests包 from bs4 import BeautifulSoup url = 'https://www.bqkan.com/3_3026' strHtml = requests.get(url) # Get方式获取网页数据
html = strHtml.text bf = BeautifulSoup(html,"html.parser") div = bf.find_all('div', class_='listmain') print(div[0]) 

3、通过Beautiful Soup对数据进行清洗,获得每个章节的完整链接,代码如下:

import requests # 导入requests包 from bs4 import BeautifulSoup source = "https://www.bqkan.com/" url = 'https://www.bqkan.com/3_3026' strHtml = requests.get(url) # Get方式获取网页数据
html = strHtml.text bf = BeautifulSoup(html, "html.parser") div = bf.find_all('div', class_='listmain') a_bf = BeautifulSoup(str(div[0]), "html.parser") a = a_bf.find_all("a") for item in a: print(item.string, source + item.get("href")) 

4、获得到了每一章的完整链接,于是我们可以对该小说进行完整下载了,代码如下:

from bs4 import BeautifulSoup import requests class downloader(object): # 初始化 def __init__(self): self.server = 'http://www.biqukan.com' self.target = 'https://www.bqkan.com/3_3026' self.names = [] # 存放章节名 self.urls = [] # 存放章节链接 self.nums = 0 # 章节数 # 获取完整章节地址 def get_download_url(self): req = requests.get(url=self.target)
        html = req.text div_bf = BeautifulSoup(html, "html.parser") div = div_bf.find_all('div', class_='listmain') a_bf = BeautifulSoup(str(div[0]), "html.parser") a = a_bf.find_all("a") self.nums = len(a) # 统计章节数 for each in a: print(each.string,self.server + each.get('href')) self.names.append(each.string) self.urls.append(self.server + each.get('href')) # 获取对应链接的地址 def get_contents(self, target): req = requests.get(url=target)
        html = req.text bf = BeautifulSoup(html, "html.parser") texts = bf.find_all('div', class_='showtxt') texts = texts[0].text.replace('\xa0' * 8, '\n\n') return texts # 将内容写入磁盘中 def writer(self, name, path, text): write_flag = True with open(path, 'w', encoding='utf-8') as f: f.write(name + '\n') f.writelines(text) f.write('\n\n') if __name__ == "__main__": dl = downloader() dl.get_download_url() print('《斗罗大陆》开始下载:') for i in range(dl.nums): print("正在下载=>", dl.names[i]) dl.writer(dl.names[i], 'E:\\斗罗大陆\\' + dl.names[i] + '.txt', dl.get_contents(dl.urls[i])) print('《斗罗大陆》下载完成!') 

5、运行结果如图所示:在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/199528.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 下午12:47
下一篇 2026年3月20日 下午12:48


相关推荐

  • 机器学习中数据预处理——标准化/归一化方法(scaler)

    机器学习中数据预处理——标准化/归一化方法(scaler)由于工作问题比较忙 有两周没有总结一下工作学习中遇到的问题 这篇主要是关于机器学习中的数据预处理的 scaler 变化 工作中遇到的问题是 流量预测问题 拿到的数据差距非常大 凌晨的通话流量很少几乎为 0 但是在早上 8 点以后数据就会激增最高常常是 500 以上的情况 通常 在 DataScience 中 预处理数据有一个很关键的步骤就是数据的标准化 这里主要引用 sklearn 文档中的一些东西来说明

    2026年3月17日
    2
  • Python3 字节码详解

    Python3 字节码详解文章目录前言什么是 py 字节码 变量常用数据类型 listdictslic 循环 whileforif 其他指令后记前言在逆向的时候遇到过反编译 py 字节码 之前也就没咋在意 啥不会查就完事儿了 好家伙 省赛让我给遇到了 直接嘤嘤嘤 今天趁这个机会 系统的学习一下 以防下次阴沟里翻船 本博文的 Python 版本是 3 8 5 版本不同形成的字节码会略有不同 但是大同小异 nbsp 什么是 py 字节码 Python 代码先被编译为字节码后 再由 Python 虚拟机来执行字节码 Pyth

    2026年3月20日
    2
  • 百度地图开放平台开发者注册_全国矢量地图shp格式百度云

    百度地图开放平台开发者注册_全国矢量地图shp格式百度云SHA1分为发布版和开发版,便于开发者开发调试和最终上线使用。1通过Eclipse获取使用adt22以上版本,可以在Eclipse中直接查看,具体位置如下:Windows:依次在Eclipse中打开Window->Preferances->Android->Build;Mac:依次在Eclipse中打开Eclipse/ADT->Preferances->Android->Build。在弹出的对话框中SHA1f

    2022年8月10日
    12
  • ITDSD- 3.分布式工程学综述

    ITDSD- 3.分布式工程学综述英文版地址:ITDSD-3.OverviewofDistributedEngineeringSunshuo(sun.shuo@aliyun.com)导论这是关于分布式架构新手入门的第三篇文章。这一篇文章主要简要的介绍分布式工程学在理论上的基本概念,历史和现状,以及未来发展方向。让大家能够了解为什么学习分布式工程学。分布式工程学在计算机科学中的地位,以及分布式工程学要解决的问…

    2022年5月31日
    30
  • StarUML使用教程【画类图】

    StarUML使用教程【画类图】命名 Class 添加属性 添加方法填写方法属性 填写方法返回值

    2026年3月18日
    2
  • GenAI Agents自我进化:自改进智能体的交互学习机制

    GenAI Agents自我进化:自改进智能体的交互学习机制

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号