Assim que o tempo estiver frio, eu quero comer carne e rastrear os dados de churrascarias em uma cidade (o código completo do rastreador Python está anexado)

prefácio

Assim que o tempo estiver frio, quero comer carne e ficar com a gordura do outono para sobreviver ao inverno. Para os carnívoros, comer carne pode ser avassalador! Especialmente o churrasco, ver os pedaços de carne cozinhando lentamente, ouvir o som do "chiar" na grelha, esse tipo de antecipação não pode ser trazido por nenhum outro alimento. Se a sobremesa é "feliz à primeira vista", então a carne "nunca se cansa dela".

Para beneficiar o "controle de churrasco", hoje usarei Python para rastrear os dados de churrascarias de uma cidade e selecionar o mais adequado

Pronto para trabalhar

meio Ambiente

  • python 3.6
  • pycharm
  • solicitações >>> enviar solicitações pip install requests
  • csv >>> salvar dados

Entenda as ideias mais básicas dos répteis

1. Análise da fonte de dados
  1. Determinar o conteúdo que rastreamos?
    Rastreie os dados da loja
  2. Descubra de onde vêm essas coisas
    Capture pacotes por meio de ferramentas de desenvolvedor e analise fontes de dados
2. Processo de implementação do código
  1. enviar solicitação, enviar solicitação para pacotes encontrados
  2. Obtenha dados, com base nos dados de resposta retornados pelo servidor para você
  3. Analise os dados, extraia os dados de conteúdo que queremos
  4. salvar dados, salvar em arquivo csv
  5. Rastreamento de várias páginas, alterações de acordo com os parâmetros de endereço de URL

processo de implementação de código

1. Envie uma solicitação

url = 'https://apimobile.某tuan.com/group/v4/poi/pcsearch/70'
data = {
    
    
    'uuid': '6e481fe03995425389b9.1630752137.1.0.0',
    'userid': '266252179',
    'limit': '32',
    'offset': 32,
    'cateId': '-1',
    'q': '烤肉',
    'token': '4MJy5kaiY_0MoirG34NJTcVUbz0AAAAAkQ4AAF4NOv8TNNdNqymsxWRtJVUW4NjQFW35_twZkd49gZqFzL1IOHxnL0s4hB03zfr3Pg',
}
# 请求头 都是可以从开发者工具里面直接复制粘贴
# ser-Agent: 浏览器的基本信息
headers = {
    
    
    'Referer': 'https://chs.某tuan.com/',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'
}
# 发送请求
response = requests.get(url=url, params=data, headers=headers)

200 indica que a solicitação foi bem-sucedida e o código de status é 403. Você não tem direitos de acesso

2. Obtenha dados

print(response.json())

3. Analise os dados

result = response.json()['data']['searchResult']
# [] 列表 把里面每个元素都提取出来 for循环遍历
for index in result:
    # pprint.pprint(index)
    # f'{}' 字符串格式化
    index_url = f'https://www.某tuan.com/meishi/{
      
      index["id"]}/'
    # ctrl + D
    dit = {
    
    
        '店铺名称': index['title'],
        '店铺评分': index['avgscore'],
        '评论数量': index['comments'],
        '人均消费': index['avgprice'],
        '所在商圈': index['areaname'],
        '店铺类型': index['backCateName'],
        '详情页': index_url,
    }
    csv_writer.writerow(dit)
    print(dit)

4. Salvar dados

f = open('烤肉数据.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
    '店铺名称',
    '店铺评分',
    '评论数量',
    '人均消费',
    '所在商圈',
    '店铺类型',
    '详情页',
])
csv_writer.writeheader() # 写入表头

5. Vire a página

for page in range(0, 1025, 32):
    url = 'https://apimobile.某tuan.com/group/v4/poi/pcsearch/70'
    data = {
    
    
        'uuid': '6e481fe03995425389b9.1630752137.1.0.0',
        'userid': '266252179',
        'limit': '32',
        'offset': page,
        'cateId': '-1',
        'q': '烤肉',
        'token': '4MJy5kaiY_0MoirG34NJTcVUbz0AAAAAkQ4AAF4NOv8TNNdNqymsxWRtJVUW4NjQFW35_twZkd49gZqFzL1IOHxnL0s4hB03zfr3Pg',
    }

Execute o código para obter os dados

código completo

f = open('烤肉数据1.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
    '店铺名称',
    '店铺评分',
    '评论数量',
    '人均消费',
    '所在商圈',
    '店铺类型',
    '详情页',
])
csv_writer.writeheader() # 写入表头

for page in range(0, 1025, 32):
    url = 'https://apimobile.某tuan.com/group/v4/poi/pcsearch/70'
    data = {
    
    
        'uuid': '6e481fe03995425389b9.1630752137.1.0.0',
        'userid': '266252179',
        'limit': '32',
        'offset': page,
        'cateId': '-1',
        'q': '烤肉',
        'token': '4MJy5kaiY_0MoirG34NJTcVUbz0AAAAAkQ4AAF4NOv8TNNdNqymsxWRtJVUW4NjQFW35_twZkd49gZqFzL1IOHxnL0s4hB03zfr3Pg',
    }
    headers = {
    
    
        'Referer': 'https://chs.某tuan.com/',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'
    }
    # 发送请求
    response = requests.get(url=url, params=data, headers=headers)
    # 200 表示请求成功 状态码 403 你没有访问权限

    result = response.json()['data']['searchResult']
    # [] 列表 把里面每个元素都提取出来 for循环遍历
    for index in result:
        # pprint.pprint(index)
        # f'{}' 字符串格式化
        index_url = f'https://www.meituan.com/meishi/{
      
      index["id"]}/'
        # ctrl + D
        dit = {
    
    
            '店铺名称': index['title'],
            '店铺评分': index['avgscore'],
            '评论数量': index['comments'],
            '人均消费': index['avgprice'],
            '所在商圈': index['areaname'],
            '店铺类型': index['backCateName'],
            '详情页': index_url,
        }
        csv_writer.writerow(dit)
        print(dit)

Acho que você gosta

Origin blog.csdn.net/m0_48405781/article/details/122847686
Recomendado
Clasificación