首页 > 其他分享 >bs4解析入门-湖南农场品价格行情

bs4解析入门-湖南农场品价格行情

时间:2023-02-28 20:24:17浏览次数:52  
标签:入门 bs4 text tr class 价格行情 tds div find

import requests
from bs4 import BeautifulSoup
import csv

url = 'https://price.21food.cn/market/174-p1.html'

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

resp = requests.get(url=url, headers=headers)
# print(resp.text)

# 解析数据
# 1.把页面源代码交给BeautifulSoup进行处理,生成bs对象
page = BeautifulSoup(resp.text, 'html.parser')  # 设置解析器
# 2.从bs对象中查找数据
# find(标签,属性=值)
# find_all(标签,属性=值)

# 定位到一个方便提取具体数值的地方
# div = page.find('div',class_='sjs_top_cent_erv') # class是python关键字,所以要写成class_
div = page.find('div', attrs={"class": "sjs_top_cent_erv"})  # 和上一行是一个意思,此时可以避免class

# 拿到所有数据行
# 进行切片,不要第一个tr 第一个tr是每一个列标题
trs = div.find_all('tr')[1:]

# 存储文件
f = open('data.csv', mode='w', encoding='utf-8', newline='')  # newline = ''
# 备注:如果没有指定 newline=‘’,则嵌入引号中的换行符将无法正确解析,并且在写入时,使用 \r\n 换行的平台会有多余的 \r 写入。
csvwriter = csv.writer(f)

for tr in trs:  # 每一行的数据
    tds = tr.find_all('td')  # 拿到行中的所有td
    name = tds[0].text  # .text 表示拿到被标签标记的内容
    market = tds[1].text
    spe = tds[2].text
    max = tds[3].text
    min = tds[4].text
    ave = tds[5].text
    date = tds[6].text
    csvwriter.writerow([name, market, spe, max, min, ave, date])  # 放到csv文件里

resp.close()
f.close()
print("完成!!!")

标签:入门,bs4,text,tr,class,价格行情,tds,div,find
From: https://www.cnblogs.com/Wesuiliye/p/17165838.html

相关文章

  • mybatis入门
    一、MyBatis简介​ MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。2013年11月迁移到Github......
  • Servlet入门
    资料来源于:B站尚硅谷JavaWeb教程(全新技术栈,全程实战),本人才疏学浅,记录笔记以供日后回顾视频链接创建Servlet流程与可能遇到的问题新建项目-新建模块在模块中添......
  • 【web开发基础】PHP快速入门(5)-PHP运算符之算术运算符和字符串运算符详解
    前言PHP开发基础开速入门系列《​【web开发基础】php开发基础快速入门(1)-PHP介绍及开发环境快速安装和基本使用介绍​》《​【web开发基础】php开发基础快速入门(2)......
  • 即时通讯技术文集(第9期):Java NIO和Netty入门系列 [共19篇]
    为了更好地分类阅读52im.net总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第9 期。[-1-] 少啰嗦!一分钟带你读懂Java的NIO和经典IO的区别[链接] htt......
  • python爬取豆瓣Top250(urlliib+re+bs4+xlwt)
    frombs4importBeautifulSoupimporturllib.request,urllib.errorimportxlwt#进行excel操作importreimporttime#获取电影名的规则findtitle=re.compil......
  • android AsyncTask入门
    要使用这个东西,要newAsyncTask.此时相当与启动个新线程.你需要重载doInbackground这个东西相当与run方法。开始执行后台操作.操作完了后onPostExecute这个函数更新......
  • 【spring笔记】Mybaties入门
    1、官方文档https://mybatis.org/mybatis-3/zh/getting-started.html2、搭建一个Mybatis实例2.1首先看配置文件mybatis-config.xml这里面包括获取数据库连接实例的数......
  • (原创)【B4A】一步一步入门05:控件、公有属性、水平锚定、垂直锚定(控件篇01)
    一、前言前面的教程,已经完整讲述了用B4A开发安卓APP从新建项目到编译发布的完整流程。从本篇开始,我们将会从B4A的细节处着手,一步一步掌握B4A。从本篇开始的子系列为“控......
  • open3D快速入门
      Corefeatures核心功能Simpleinstallationviacondaandpip 通过conda和pip简单安装3Ddatastructures  三维数据结构3Ddataprocessingalgorithms ......
  • Golang入门第四天
    面向对象编程匿名字段匿名字段初始化方法值语义与引用语义封装,继承,多态方法值,方法表达式接口接口继承,接口转换空接口通过if实现类型断言通过switch实现类型断......