您现在的位置是:首页 > 技术教程 正文

【python】采集每日必看黄色软件数据~

admin 阅读: 2024-03-25
后台-插件-广告管理-内容页头部广告(手机)

前言

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章

环境使用:

  • Python 3.8

  • Pycharm

模块使用:

  • requests >>> pip install requests

  • re

  • csv

安装模块:win + R 输入cmd 输入安装命令 pip install 模块名

如果出现爆红 可能是因为 网络连接超时 切换国内镜像源

基本思路:

  1. 明确需求:

    采集网站以及数据是什么?

    店铺数据

    PS: 一定要清楚, 数据是请求那个链接可以获取

    通过开发者工具进行抓包分析

    • 打开开发者工具: F12 / fn+F12 / 鼠标右键点击检查选择network

    • 点击第二页, 第一个数据包就是我们要的链接地址

      <通过关键词进行搜索,找到对应的数据包 [请求链接] >

代码怎么实现?

  1. 发送请求, 模拟浏览器对url地址发送请求 <为了得到数据>

  2. 获取数据, 获取服务器返回响应数据 --> response <得到所有数据>

  3. 解析数据, 提取我们想要的数据内容 <得到想要的数据>

  4. 保存数据, 保存表格文件

代码展示

导入模块

# 导入数据请求模块 --> 第三方模块, 需要安装 pip install requests import requests # 导入格式化输出模块 from pprint import pprint # 导入csv模块 import csv
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

创建文件

f = open('烤肉.csv', mode='a', encoding='utf-8', newline='') csv_writer = csv.DictWriter(f, fieldnames=[ '店名', '评分', '评论', '店铺类型', '商圈', '人均', '最低消费', '经度', '纬度', '详情页', ]) csv_writer.writeheader()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

“”"
1. 发送请求

模拟浏览器对url地址发送请求 <为了得到数据>

403 状态码 没有访问权限 一定要加防盗链

模拟浏览器 为了防止被反爬

cookies host referer UA

“”"
请求链接

url = 'https://*****/group/v4/poi/pcsearch/70?uuid=1191c166b23545adaef7.1679637144.1.0.0&userid=266252179&limit=32&offset=32&cateId=-1&q=%E7%83%A4%E8%82%89&token=AgEcI8MGJ-mKhr9oT4VY_zjPV_oFYDXfbo9sEAaWhz5Ud0ZxeKhBNbm--AOvOEMZfMX1X8atA5u22QAAAABsFwAA631DsS1KNwy05foi_83hOjAmFHyzNkrbtWhFRpR9MOAObuDNmNMpKOe8SdRaRJ_n'
  • 1

伪装模拟 --> 请求头

headers = { # Referer 防盗链, 告诉服务器请求链接, 是从哪里跳转过来 'Referer': 'https://*****/', # User-Agent 用户代理 表示浏览器基本身份信息 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36' }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

发送请求

response = requests.get(url=url, headers=headers) # print(response)
  • 1
  • 2
  • 3

“”"

2. 获取数据

获取服务器返回响应数据 --> response <得到所有数据>

response.json() 获取响应json字典数据

3. 解析数据

提取我们想要的数据内容 <得到想要的数据>

字典取值 get

键值对取值 --> 根据冒号左边的内容[键], 提取冒号右边的内容[值]

Json字典数据, 一层一层提取

print(index) --> json数据, 呈现一行

pprint(index) --> json数据, 呈现多行 展开效果

“”"

for循环遍历, 把列表里面元素一个一个提取出来

for index in response.json()['data']['searchResult']:
  • 1

详情页链接:

link = f'https://*****/meishi/{index["id"]}/'
  • 1

创建字典 --> 方便后续保存数据

dit = { '店名': index['title'], '评分': index['avgscore'], '评论': index['comments'], '店铺类型': index['backCateName'], '商圈': index['areaname'], '人均': index['avgprice'], '最低消费': index['lowestprice'], '经度': index['longitude'], '纬度': index['latitude'], '详情页': link, } csv_writer.writerow(dit) print(dit)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

尾语

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索