Python爬虫---2(实例练习)

一、实例运用-1

抓取和保存百度翻译结果

1.明确实现需求的步骤

· 指定目标URL

· 弄清楚百度翻译的网页工作基本原理

· 发送请求抓取数据

· 将得到的数据保存到本地文件夹中

2.逻辑分析

· 目标URL :https://fanyi.baidu.com/sug

· 弄清楚百度翻译的网页工作基本原理

a.首先我们通过网页抓包工具找到存储数据的数据包,如下图所示

Python爬虫---2(实例练习)_第1张图片

b.在抓包工具中点击payload选项卡,发现其中的参数正是我们要翻译的内容:preview

c.然后点击Headers选项卡,找到其中的URL即为目标URL:https://fanyi.baidu.com/sug 同时发现发送的请求为post请求

Python爬虫---2(实例练习)_第2张图片

3.使用代码实现需求

import json
import requests
# 由于保存到本地的数据类型为Json类型,故需要安装json模块(pip install json)

post_url = 'https://fanyi.baidu.com/sug'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.42'
}
# 输入要翻译的内容作为post请求的参数
word = input('please enter a word:')
data = {'kw': word}
response = requests.post(url=post_url, data=data, headers=headers)
dic_obj = response.json()  # 把json格式的数据转换为字典格式
filename = word + '.json'
# 持久化存储数据
fp = open(filename, 'w', encoding='utf-8')
json.dump(dic_obj, fp=fp, ensure_ascii=False)

print("finished")

4.将得到的数据保存到本地文件夹中

保存的数据类型为json类型,由于json类型数据在python爬虫中很重要,所以大家要清楚其中的用法。

二、实例运用-2

抓取和保存肯德基的门店信息

1.明确实现需求的步骤

· 指定目标URL

· 弄清楚网页工作基本原理

· 发送请求抓取数据

· 将得到的数据保存到本地文件夹中

2.逻辑分析

· 目标URL :http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx

· 弄清楚百度翻译的网页工作基本原理

a.找到存放肯德基门店信息的数据包

Python爬虫---2(实例练习)_第3张图片

b.分析得到数据的请求方式和参数

Python爬虫---2(实例练习)_第4张图片
Python爬虫---2(实例练习)_第5张图片

3.代码实现需求并保存得到的数据

import json
import requests

post_url = ' http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.42'}

keyword = input("请输入要查询的城市名称:")
data = {'cname': '',
        'pid': '',
        'op': 'keyword',
        'keyword': keyword,
        'pageIndex': '1',
        'pageSize': '10'
        }
response = requests.post(url=post_url, data=data, headers=headers)

# 封装函数
def kfc_json():
    print(type(response))  # 
    page_json = response.json()
    filename = keyword + '.json'
    fp = open(filename, 'w', encoding='utf-8')
    json.dump(page_json, fp=fp, ensure_ascii=False)
    print(page_json)

# 调用函数
kfc_json()
print('over!')

你可能感兴趣的:(python,个人开发,scrapy)