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

一、实例运用-1

抓取和保存百度翻译结果

1.明确实现需求的步骤

· 指定目标URL

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

· 发送请求抓取数据

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

2.逻辑分析

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

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

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

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

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

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.找到存放肯德基门店信息的数据包

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

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))  # <class 'requests.models.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!')
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值