python 爬虫之 爬取网站信息并保存到文件

文章目录

前期准备

随便找个网站进行爬取,这里我选择的是(一个卖书的网站)
https://www.bookschina.com/24hour/62700000/

我的目的是爬取这个网站的这个页面的书籍的名称以及相对应的价格

探索该网页的HTML码的特点

在该网页右键,选择检查,就可以看到下面的样子

然后按下面图片的第一个按键(作用是:当你鼠标停留在网页时,会自动显示到对应的网页代码)

查找书名的特点


我们发现,书名是位于<h2 class = "name" >标签的 <a >标签里面的

同理,可以找到价格是位于<div class = "priceWrap" 里面的<span class = "swllPrice>标签里面的 "

那么这么就好办了

开始编写代码

python 复制代码
import requests
from bs4 import BeautifulSoup

# 设置请求头,模拟浏览器访问
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
}

# 发送GET请求获取页面内容
response = requests.get(r'https://www.bookschina.com/24hour/62700000/', headers=headers)

# 打印HTTP响应状态码
print(response.status_code)

# 获取页面内容
content = response.text

# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(content, "html.parser")

# 存储书名的列表
namestore = []

# 存储价格的列表
pricestore = []

# 查找所有class为"name"的h2标签
allname = soup.findAll("h2", attrs={"class": "name"})

# 遍历每个h2标签
for name in allname:
    # 在每个h2标签中查找所有的a标签
    realnames = name.findAll("a")
    # 遍历每个a标签
    for realname in realnames:
        # 将书名添加到namestore列表中
        namestore.append(realname.string)

# 查找所有class为"priceWrap"的div标签
allprice = soup.findAll("div", attrs={"class": "priceWrap"})

# 遍历每个div标签
for price in allprice:
    # 在每个div标签中查找所有class为"sellPrice"的span标签
    realprices = price.findAll("span", attrs={"class": "sellPrice"})
    # 遍历每个span标签
    for realprice in realprices:
        # 将价格添加到pricestore列表中
        pricestore.append(realprice.string)

# 使用zip函数将书名和价格对应起来,并打印结果
for a, b in zip(namestore, pricestore):
    print(a, b)

存入文件

python 复制代码
# 打开文件,准备写入数据,使用UTF-8编码
with open(r"d:\Desktop\畅销书以及价格.txt", "w", encoding='utf-8') as f:
    # 使用zip函数将书名和价格对应起来,并写入文件
    for a, b in zip(namestore, pricestore):
        # 写入书名
        f.write(str(a) + '\n')
        # 写入价格
        f.write(str(b) + '\n')

总的程序

python 复制代码
import requests
from bs4 import BeautifulSoup


headers ={
    "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
}

responce = requests.get(r'https://www.bookschina.com/24hour/62700000/',headers = headers)

print(responce.status_code)
content = responce.text
soup = BeautifulSoup(content,"html.parser")

namestore = []
pricestore = []

allname = soup.findAll("h2",attrs={"class" : "name"})
for name in allname:
    realnames = name.findAll("a")
    for realname in realnames:
        #print(realname.string)
        namestore.append(realname.string)

allprice = soup.findAll("div",attrs={"class":"priceWrap"})
for price in allprice:
    realprices = price.findAll("span",attrs={"class" : "sellPrice"})
    for realprice in realprices:
        #print(realprice.string)
        pricestore.append(realprice.string)


with open(r"d:\Desktop\畅销书以及价格.txt","w",encoding='utf-8') as f:
    for a, b in zip(namestore, pricestore):
        f.writelines(str(a) + '\n' )
        f.writelines(str(b) + '\n' )

文件存储效果

相关推荐
学测绘的小杨3 小时前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
zzzzzz3109 小时前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐10 小时前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱21 小时前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot1 天前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海1 天前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱1 天前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
Caco_D1 天前
一行代码抓遍全网 20 个热榜!Aneiang.Pa 4.0 发布 — 极简 .NET 爬虫库
爬虫·.net
曲幽1 天前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict
荣码1 天前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python