实战例子说明:
使用python的requests网络进行数据请求,获取同程酒店相关数据,并且保存在csv文件中。
特别声明:本例子程序仅限于学习交流使用,切勿用于商业用途。
目的:学习网络数据的抓取,以及csv文件的写入。
实现步骤和注意事项:
配置hearders属性,通过网页源代码来查看获取;
分析网页各个url地址和具体的网页内容;
用request抓取数据,并且写入csv文件。
注意事项:
常用hearders属性的配置:
“Accept”: “application/json, text/plain, /”, //接受的数据格式
“Accept-Encoding”: “gzip, deflate, br”, //编码格式
“Accept-Language”: “zh-CN,zh;q=0.9,en;q=0.8”, //语言
“Cookie”: “elongUser=userid=xxxxx”, //Cookie
“Referer”: “https://www.ly.com/hotel/hotellist?xxxxx”, //防止盗链
“User-Agent”: “xxxxxx” //用户的电脑浏览器配置
代码:
功能:获取同程酒店相关数据。
相关网址为:
url = "https://www.ly.com/tapi/v2/list"
python代码:
import requests
import os
import csv
#hearder
hearders_param = {
"Accept": "application/json, text/plain, */*",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
"appfrom": "16",
"Cache-Control": "no-cache",
"cluster": "idc",
"Connection": "keep-alive",
"Cookie": "xxxxxx", #使用你自己的值
"Host": "www.ly.com",
"Pragma": "no-cache",
"Referer": "https://www.ly.com/hotel/hotellist?pageSize=20&city=394&inDate=2022-06-05&outDate=2022-06-06&filterList=8888_1&pageIndex=6&t=1654414710837",
"sec-ch-ua": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"102\", \"Google Chrome\";v=\"102\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"macOS\"",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-origin",
"Tmapi-Client": "tpc",
"traceid": "a8015495-8733-4649-8e44-fb8be958f5da",
"User-Agent": "xxxxxx" #使用你自己的值
}
#数据请求
def request_data():
#请求1——5页
for page in range(1,3)