前期准备
随便找个网站进行爬取,这里我选择的是(一个卖书的网站)
https://www.bookschina.com/24hour/62700000/
探索该网页的HTML码的特点
在该网页右键,选择检查,就可以看到下面的样子
然后按下面图片的第一个按键(作用是:当你鼠标停留在网页时,会自动显示到对应的网页代码)
查找书名的特点
我们发现,书名是位于<h2 class = "name" >标签的 <a >标签里面的
同理,可以找到价格是位于<div class = "priceWrap" 里面的<span class = "swllPrice>标签里面的 "
那么这么就好办了
开始编写代码
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)
存入文件
# 打开文件,准备写入数据,使用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')
总的程序
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' )
文件存储效果
原文地址:https://blog.csdn.net/weixin_74850661/article/details/134670555
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_4181.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。