当前位置: 首页 > news >正文

山东房和城乡建设厅网站首页如何制作网页游戏

山东房和城乡建设厅网站首页,如何制作网页游戏,网站做视频的软件有哪些,哪个网站专业做商铺爬虫Day3 csv和bs4 一、CSV的读和写 1. 什么是csv文件 csv文件叫做:逗号分隔值文件,像Excel文件一样以行列的形式保存数据,保存数据的时候同一行的多列数据用逗号隔开。 2. csv文件的读写操作 1) csv文件读操作 from csv import reader…

爬虫Day3 csv和bs4

一、CSV的读和写

1. 什么是csv文件

csv文件叫做:逗号分隔值文件,像Excel文件一样以行列的形式保存数据,保存数据的时候同一行的多列数据用逗号隔开。

2. csv文件的读写操作

1) csv文件读操作

from csv import reader, DictReader
a.reader

创建根据文件对象创建对应的reader,获取文件内容

with open('files/电影.csv', encoding='utf-8', newline='') as f:r1 = reader(f)print(next(r1))print(list(r1))
b.DictReader
with open('files/电影.csv', encoding='utf-8', newline='') as f:r2 = DictReader(f)print(next(r2))for x in r2:print(x)

2)csv文件写操作

from csv import writer, DictWriter
a. writer
with open('files/student1.csv', 'w', encoding='utf-8', newline='') as f:# 1.根据文件对象创建writer对象w1 = writer(f)# 2.写入数据# 1)一次写一行w1.writerow(['姓名', '性别', '年龄'])w1.writerow(['小明', '男', 22])# 2)一次写多行w1.writerows([('小花', '女', 18),['张三', '男', 30]])
b. DictWriter
with open('files/student2.csv', 'w', encoding='utf-8', newline='') as f:# 1.根据文件对象创建writer对象w2 = DictWriter(f, ['姓名', '性别', '年龄'])# 2.写入数据# 1)将字典的键作为第一行写入文件w2.writeheader()w2.writerow({'姓名': '小明', '性别': '男', '年龄': 22})w2.writerows([{'姓名': '小花', '性别': '女', '年龄': 17},{'姓名': '小红', '性别': '女', '年龄': 18},{'姓名': '张三', '性别': '男', '年龄': 30}])

二、bs4

bs4(beautifulsoup4),它基于css选择器的网页解析器

css语法:

选择器{属性名1: 属性值2; 属性名2: 属性值2; …}

常见属性:color(设置字体颜色)、 background-color(背景颜色)、font-size(字体大小)、width(宽度)、height(高度)、border(边框)

选择器:

  1. 元素选择器(标签选择器) - 将标签作为选择器,选中所有指定的标签

    a{} - 选中所有的a标签
    p{} - 选中所有的p标签
    span{} - 选中所有的span标签

  2. id选择器 - 在标签的id属性前加#作为一个选择器,选中id属性值为指定值的标签
    注意:一个网页中id属性值是唯一的

    #a{} - 选中id属性值为a的标签
    #b1{} - 选中id属性值为b1的标签

  3. class选择器 - 在标签的class属性前加.作为一个选择器,选中所有class属性值为指定值的标签
    注意:一个网页中多个标签的class属性值可以相同;同一个标签可以有多个不同的class
    只有一个class属性值标签的写法:<标签名 class=“c1”>
    有多个class属性值标签的写法:<标签名 class=“c1 c2 c3”>

    .a{} - 选中class属性值为a标签
    .c1{} - 选中class属性值为c1的标签
    .a.b{} - 选中class属性值同时为a和b标签
    a.c1{} - 选中所有class值为c1的a标签

  4. 子代选择器 - 将两个选择器用>连接成一个选择器(前后形成父子关系)

div>a{} - 选中所有在div标签中的a标签(a标签必须是div的子标签)

  1. 后代选择器 - 将两个选择器用空格连接成一个选择器(前后形成后代关系)

div a{} - 选中所有在div标签中的a标签(a标签必须是div的后代标签)

注意:安装的时候装beautifulsoup4,使用的时候用bs4

from bs4 import BeautifulSoup

1.根据网页源代码创建soup对象

BeautifulSoup(网页源代码, ‘lxml’)

f = open('files/data.html', encoding='utf-8')
soup = BeautifulSoup(f.read(), 'lxml')
f.close()

2. 获取标签

soup对象.select(css选择器) - 获取整个网页中选择器选中的所有标签,返回值是一个列表,列表中的元素是标签对象(找不到返回空列表)
soup对象.select_one(css选择器) - 获取整个网页中选择器选中的第一个标签,返回值是标签对象(找不到返回None)
标签对象.select(css选择器) - 获取指定标签中css选择器选中的所有标签
标签对象.select_one(css选择器) - 获取指定标签中css选择器选中的第一个标签

result = soup.select('p')
print(result)# result = soup.select('.c1')
# print(result)
#
# result = soup.select_one('p')
# print(result)
#
# result = soup.select('div p')
# print(result)box1 = soup.select_one('#box1')
result = box1.select('p')
print(result)p1 = soup.select_one('span>p')
a1 = box1.select_one('a')

3. 获取标签内容和标签属性

标签对象.text - 获取标签内容
标签对象.attrs[属性名] - 获取标签指定属性的值

print(p1.text)      # '我是段落5'
print(a1.text)      # '我是超链接3'
print(a1.attrs['href'])     # 'https://www.baidu.com'

应用

import requests
from bs4 import BeautifulSoup# 1. 获取网页源代码
headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
}
response = requests.get('https://movie.douban.com/top250', headers=headers)
html = response.text# 2. 解析数据
soup = BeautifulSoup(html, 'lxml')# 获取每个电影对应的div
div_list = soup.select('.grid_view>li>div')
for x in div_list:name = x.select_one('.title').textscore = x.select_one('.rating_num').textcomment = x.select('.star>span')[-1].text[:-3]print(name, score, comment)
http://www.tj-hxxt.cn/news/84986.html

相关文章:

  • 广西城乡住房建设厅网站首页北京网站优化合作
  • 米特号类似网站查网站流量的网址
  • 网站导航栏兼容性代写新闻稿
  • 哪些公司的网站做的漂亮建站之星网站
  • 如何做网站效果更好搜索引擎优化名词解释
  • 扬州企业网站建设网站权重是怎么提升的
  • 云南网站建设一度科技公司社群营销的案例
  • 个人网站盈利外贸网站建站平台
  • 网站80端口备案广东疫情最新消息
  • 建设一个网站选择的服务器超级seo助手
  • 可以做puzzle的网站下载百度免费
  • 收集链接 做网站网络市场调研的方法
  • 义乌建设局网站竞价推广培训课程
  • 如何规划电子商务网站常用的网络营销方法及效果
  • 织梦网站做视频明年2024年有疫情吗
  • 做网站公司深圳直播营销
  • 电子销售网站模板免费下载网站推广是做什么的
  • 网站美工设计详细步骤360收录提交入口
  • wordpress多语言站点东莞做网站的公司吗
  • 做网站用什么后台今日新闻头条10条
  • 网站建设公司有seo招聘网
  • 梅州网站建北京网站优化公司
  • 上线了相同网站北京营销推广公司
  • 衡水专业做wap网站seo零基础入门到精通200讲
  • 公众号版影视网站开发小红书怎么推广引流
  • 北京靠谱的网站公司头条今日头条新闻头条
  • 乾县做网站广告联盟平台挂机赚钱
  • 我想在阿里巴巴网站开店 怎么做深圳华强北新闻最新消息今天
  • 便宜网站建设公司哪家好旺道网站优化
  • 餐饮美食网站模板源码优化推广seo