爬虫入门实例-源码加注释(以requests模块为主)

爬虫的核心在于通过F12对目标网页ajax的分析,分析明了了代码很简单。

一.获取搜狗首页信息

import requests  # 导入模块

url = 'https://www.sogou.com/'  # 指定目标网页
response = requests.get(url=url)  # 通过get方式访问
page_text = response.text  # 获取相应文本数据
with open('sougou.html', 'w', encoding='utf-8') as fp:  # 创建文件指针,文件名sougou.html,打开文件方式为只写,解码方式为utf-8
    fp.write(page_text)  # 写文件

二.抓取关键词相关的网页

import requests  # 导入模块

url = 'https://www.sogou.com/web'  # 用搜狗搜索关键词
kw = input("ender a woed:")  # 输入关键词
param = {
    'query': kw  # 设置表单参数
}
# UA伪装:请求的载体身份标识
head = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0"
}  # 设置UA伪装为火狐流浪器
response = requests.get(url=url, params=param, headers=head)  # 通过get方式携带参数进行访问
page_text = response.text  # 获取相应的文本格式内容
file_name = kw + '.html'  # 设置关键词相应的文件名
with open(file_name, 'w', encoding='utf-8') as fp:  # 创建文件指针,文件名为,打开文件方式为只写,解码方式为utf-8
    fp.write(page_text)  # 写入文件
print(file_name, "保存成功!")  # 保存成功相关网页的提示语

三.获取豆瓣指定电影榜单中电影的详细消息

import requests  # 导入模块
import json

# 通过抓包工具分析后进行如下操作
url = "https://movie.douban.com/j/chart/top_list"  # 指定需求网页
parm = {
    'type': '24',
    'interval_id': '100:90',
    'action': ' ',
    'start': '0',
    'limit': '20'
}  # 分析网页后传入相应参数
head = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0"
}  # 进行UA伪装
response = requests.get(url=url, params=parm, headers=head)  # 访问网页
data_list = response.json()  # 通过F12分析可知返回信息为json格式
fp = open('douban.json', 'w', encoding='utf-8')  # 创建文件指针,文件名为douban.json,打开文件方式为只写,解码方式为utf-8
json.dump(data_list, fp=fp, ensure_ascii=False)  # 通过dump方式存进内存,取消ascii编码

四.破解百度翻译

import requests  # 导入模块
import json

# 通过抓包工具分析后进行如下操作
post_url = 'https://fanyi.baidu.com/sug'  # 通过抓包工具(F12)查看百度翻译的相关XHR获得相应网页
word = input("enter a word:")  # 键入要翻译的词语
data = {
    'kw': word  # 设置表单信息
}
head = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0"
}  # 进行UA伪装
response = requests.post(url=post_url, data=data, headers=head)  # post方式访问网页
dic = response.json()  # 通过F12可知返回信息为json格式
file_name = word + ".json"  # 设置文件名
fp = open(file_name, 'w', encoding='utf-8')  # 创建文件指针,文件名为file_name,打开文件方式为只写,解码方式为utf-8
json.dump(dic, fp=fp, ensure_ascii=False)  # 通过dump方式存进内存,取消ascii编码

五.获取国家药品监管局化妆品许可证信息

import requests  # 导入模块
import json

# 通过抓包工具分析后进行如下操作
url = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList'  # 存放id的网页
head = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0"
}  # 进行UA伪装
id_list = []  # 用于村id
all_data_list = []  # 用于存每条id对应的详细信息
for page in range(369):  # 取出369*15种化妆品的id
    data = {
        "on": "true",
        "page": page,  # 通过改变表单参数改变访问的网页
        "pageSize": "15",
        "productName": "",
        "conditionType": "1",
        "applyname": "",
        "applysn": "",
    }
    json_ids = requests.post(url=url, headers=head, data=data).json()  # 通过json方法解析返回发数据
    for dic in json_ids['list']:  # 取出id
        id_list.append(dic['ID'])  # 存入id
post_url = 'ttp://scxk.nmpa.gov.cn:81/xk/itownet/portal/dzpz.jsp'  # 用于获取每种化妆品对应的详细信息的根目录
for id in id_list:
    data = {
        'id': id,  # 通过改变表单参数改变待访问网页
    }
    detail_json = requests.post(url=url, headers=head, data=data).json()  # 通过json方法解析返回发数据
    all_data_list.append(detail_json)  # 保存每条id对应的详细信息
fp = open('all_data.json', 'w', encoding='utf-8')  # 创建文件指针,文件名为all_data.json,打开文件方式为只写,解码方式为utf-8
json.dump(all_data_list, fp=fp, ensure_ascii=False)  # 通过dump方式存进内存,取消ascii编码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Henrik-Yao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值