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

厦门市翔安区建设局网站网站推广的渠道有

厦门市翔安区建设局网站,网站推广的渠道有,深圳市福田区,wordpress 为什么要ftp网址:豆瓣电影 Top 250 本案例所需要的模块 requests (用于发送HTTP请求)re (用于字符串匹配和操作) 确定需要爬取的数据 : 电影的名称电影的年份电影的评分电影评论人数 一. 发送请求 模拟浏览器向服务器发送请求 准备工作 -分析页面: F12 or 右击点击检查 查看…

网址:豆瓣电影 Top 250

本案例所需要的模块
requests (用于发送HTTP请求)re (用于字符串匹配和操作)

确定需要爬取的数据 :

  1. 电影的名称
  2. 电影的年份
  3. 电影的评分
  4. 电影评论人数

一. 发送请求 模拟浏览器向服务器发送请求

准备工作 -分析页面:
F12 or 右击点击检查 查看页面源代码 目的是确定数据是否为静态数据

Ctrl + F 快捷键打开搜索框 将我们所需要爬取的数据输入
发现数据都在前端的页面当中
即拿到页面的源代码 从中提取数据

接着复制浏览器的URL地址 在pycharm里面构建请求

# 导包
import requests
import reurl = 'https://movie.douban.com/top250'# 构建请求体
# user-agent 即UA 为浏览器的基本信息 爬虫程序就是伪装成浏览器从网页拿数据
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0',}resp = requests.get(url=url, headers=headers)print(resp.text.encode('gbk', 'ignore').decode('gbk'))

  我这里会出现一个编码的问题 查找资料之后 需要先用 GBK 编码,加个 ignore 丢弃错误的字符,然后再解码

之后在拿到的网页源代码中 老样子Ctrl+F 检查爬取的数据是否存在

二. 解析数据 提取数据

OK 接着我们需要从页面源代码中提取出我们想要的数据

分析页面的结构

ex = re.compile(r'<div class="hd">.*?<span class="title">(?P<name>.*?)</span>',re.S)
# 不需要的内容通过.*?过掉 给需要取出的内容 取值为name 类似字典
result = ex.findall(text)# findall返回的是一个列表
# finditer 返回的是一个迭代器 后续需要通过for循环取出
# re.search() 返回的是match对象  需要.group拿数据 只能拿到匹配到的第一个数据
# re.match() 从头开始匹配 类似^
# 预加载正则表达式  后续可重复使用该正则
# re.complie(r'正则')

继续编写正则 想象这是一篇文章 不需要的通过.*?过滤出去 用(.*?)保留下来
后续通过类似 键值对取值取出

我们通过迭代器的方式 提取

ex = re.compile(r'<div class="hd">.*?<span class="title">(?P<name>.*?)'r'</span>.*?<p class="">.*?<br>(?P<year>.*?)&nbsp.*?'r'<span class="rating_num" property="v:average">(?P<judge>.*?)</span>.*?'r'<span>(?P<num>.*?)人评价</span>.*?'r'<p class="quote"><span class="inq">(?P<intro>.*?)。</span></p>',re.S)
result = ex.finditer(text)
for i in result:# 通过.group取数据# 检验拿到的数据print(i.group('name'))#  去除前面的空格print(i.group('year').strip())print(i.group('judge'))print(i.group('num'))

三.保存数据 存储为 csv excel 文件

接着我们保存爬取的数据  需要用到csv模块

# 导包
import csvf = open('movie.csv','w',encoding='utf-8',newline='')
# newline 解决空行的问题
csv_writer = csv.writer(f)
# 写入表头
csv_writer.writerow(['电影名','年份','评分','评价人数'])

for i in result:# 将数据存储为字典格式dit = i.groupdict()# 处理年份前的空格dit['year'] = dit['year'].strip()#将值写入csv文件csv_writer.writerow(dit.values())
# 与with open 不同的是 open需要手动关闭
f.close()

另外一种保存数据的方式 pandas 个人觉得pandas方便很多
以下是实现代码

 

# 导包
import pandas as pd
# 定义一个空列表 后面将dit字典数据存储进去
lis = []for i in result:dit = i.groupdict()# 处理年份前的空格dit['year'] = dit['year'].strip()# 只需要改这两行代码lis.append(dit)pd.DataFrame(lis).to_excel('movie1.xlsx',index=False)

运行结果如下 如果在excel 中打开此文件 会乱码 需要将编码格式写为 utf-8-sig 

多页采取的话 需要分析一下 请求的url地址 之后构建个for循环去遍历

分析二三页的地址 可得 start参数间隔25 

其实是为了学习正则而采用正则去提取数据 只有在特定的情况下才使用正则 一般使用其它的方法

以下是本次案例的所有代码 供学习交流使用

import requests
import re
import csvf = open('movie.csv', 'w', encoding='utf-8-sig',newline='')
csv_writer = csv.writer(f)
csv_writer.writerow(['电影名', '年份', '评分', '评价人数'])
for page in range(0, 250, 25):url = f'https://movie.douban.com/top250?start={page}&filter='headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0',}resp = requests.get(url=url, headers=headers)text = resp.text.encode('gbk', 'ignore').decode('gbk')ex = re.compile(r'<div class="hd">.*?<span class="title">(?P<name>.*?)'r'</span>.*?<p class="">.*?<br>(?P<year>.*?)&nbsp.*?'r'<span class="rating_num" property="v:average">(?P<judge>.*?)</span>.*?'r'<span>(?P<num>.*?)人评价</span>.*?', re.S)result = ex.finditer(text)for i in result:dit = i.groupdict()# 处理年份前的空格dit['year'] = dit['year'].strip()csv_writer.writerow(dit.values())

http://www.dtcms.com/wzjs/325329.html

相关文章:

  • 如何建立公司网站账号花都网站建设公司
  • 网站建设 中山巩义网络推广外包
  • 算卦网站哪里可以做2024年阳性什么症状
  • 企业做网站预付账款会计分录网络平台怎么创建
  • 有了网站怎么开发application快速排名精灵
  • 网站评论怎么做网站打开速度优化
  • 网站flash客服百度搜索引擎
  • 都有什么网站产品网络营销
  • 网站一键建设免费搭建网站
  • 西安网站微信开发我的百度网盘登录入口
  • 如何创建自己公司网站网络推广软文怎么写
  • 团购网站开发的可行性分析广州白云区最新信息
  • 专业网站建设微信官网开发路由优化大师官网
  • 建设九九网站硬件工程师培训机构哪家好
  • 成都软件公司前100强营销网站优化推广
  • 那个网站做720度效果图软文广告文案
  • 简述app开发流程北京专门做seo
  • 可以看男男做的视频网站餐饮营销引流都有什么方法
  • unity3d培训班多少钱seo免费诊断
  • 网站怎么加入百度网盟如何制作网页设计
  • 哈尔滨做网站价格网站免费网站免费优化优化
  • wordpress访问有的目录500杭州排名优化软件
  • 建站成功是怎么回事广州优化疫情防控举措
  • 做淘宝客网站多少钱吉林seo基础知识
  • 西宁网站seo公司地推拉新接单平台
  • 怎么做网站公众号营业推广是什么意思
  • 全网seo是什么意思seo推广代运营
  • 网站建设版块分类网络营销方案策划书
  • java script 做网站seo臻系统
  • 代做网站的公司百度贴吧热线客服24小时