Python 爬虫
@[TOC](目录)
# 爬虫 使用不同的包分类抓取
## 抓取页面数据,需要登录验证
抓取美团数据为例:
1.安装 pip install requests 针对post,get等接口需要采用此方法进行抓取
```mermaid
import requests
import json
import csv
# 访问url
base_url = 'https://apimobile.meituan.com/group/v4/poi/pcsearch/73'
# 请求参数
parameters = {
'uuid': 'cfc68d7bb1****75319405.1.0.0',
'userid': '19***41',
'limit': 32,
'offset': 0,
'cateId': -1,
'q': '酒店',
'token': 'AgE0I2b-I9EwnkcjnEJ9QamP-tFMTTemeRmBgGmgunjipXsqW1UhLLRLEPlcA33GzVqDnfOX2a8qhAAAAAB1FgAAQjK433U7eYjaNEFMpjnKzBT5gpIS6Vf_TPRtruumH7i8Ml_DEkGBgjymsKFn4X5K',
'areaId': 166
}
# 请求头
headers = {
'Referer': 'https://zz.meituan.com/', #防盗链
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36' #浏览器、浏览器内核和操作系统的版本型号信息
}
response = requests.get(base_url,params=parameters,headers=headers)
# 根据请求返回体查询需要的数据模块
searchData = response.json()['data']['searchResult']
# 导出csv
f = open('hotel.csv',mode='a',encoding='utf-8',newline='')
#写入表头数据
csv_writer = csv.DictWriter(f,fieldnames=[
'酒店名称',
'酒店图片',
'评分',
'评论数',
'酒店类型',
'区域',
'经度',
'纬度',
])
csv_writer.writeheader()
# 循环数据导入csv
for index in searchData:
dit = {
'酒店名称': index['title'],
'酒店图片': index['imageUrl'],
'评分': index['avgscore'],
'评论数': index['comments'],
'酒店类型': index['backCateName'],
'区域': index['areaname'],
'经度': index['longitude'],
'纬度': index['latitude'],
}
csv_writer.writerow(dit)
```