1. 网页采集器
1. 首先导入request模块
2. 使用UA伪装(使用UA伪装是为了在进行爬虫时,防止网页进行了UA检测,导致我们使用代码进行搜索不被允许。使用UA伪装,就是使浏览器UA检测时认为是用户使用浏览器进行搜索操作)
3. 指定url(在url中含有一些参数,可以先使用字典将参数进行存储,然后再request进行数据请求的时候将参数进行导入,即headers)
4. 进行发送请求
5. 获取数据
6. 永久化存储数据
import requests
kw = input("Enter a word :")
headers= {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
}
url = 'https://www.sogou.com/web'
#将url中的参数存储在字典中
param = {
'query': kw
}
# 对指定的url进行发送请求,并处理了参数
response = requests.get(url=url,params=param,headers=headers)
page_text = response.text #将获取的数据进行字符串形式存储
print(page_text)
name = kw+'.html' # 存储在html文件中
with open(name,'w',encoding='utf-8') as fp:
fp.write(page_text)
print("爬取内容结束")
2. 豆瓣电影信息采集
1. 指定url
2. 设置url中的参数(通过进行抓包查看发现,我们在每一次查询新的电脑内容时,网站是使用ajax方法进行局部更新的。同时,我们也发现ajax进行更新时是json类型的数据)
3. 进行UA伪装
4. 获取数据
5. 永久化存储数据
import requests
import json
# 指定url
url = "https://movie.douban.com/j/chart/top_list"
# 设置url中的参数
param = {
"type": "24",
"interval_id": "100:90",
"action": " ",
"start": "0",
"limit": "20"
}
# 使用UA伪装
headers= {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
}
# 获取数据
response = requests.get(url=url,params=param,headers=headers)
# 选择存储数据的地址
road = "./豆瓣电影.json"
# 打开文件
fp = open(road,"w",encoding="utf-8")
# 将获取的数据进行json转化
data = response.json()
# 进行json文件存储
json.dump(data,fp=fp,ensure_ascii=False)
print(data)
print("over")
# resopnse.json(fp,,)
3. 肯德基信息
作业,自己写的
import requests
import json
# 指定url
url = "http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword"
# 输入需要查询的城市
location = input("Enter a city:")
# 列举参数
param = {
"cname": "",
"pid":" ",
"keyword": location,
"pageIndex": "1",
"pageSize": "10"
}
# UA伪装
headers= {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
}
# 获取数据
response = requests.post(url=url,params=param,headers=headers)
# json类型进行存储
data =response.json()
# data_2 = json.dump(data,,)
road = "./肯德基.json"
fp = open(road,"w",encoding="utf-8")
# fp.write(data)
json.dump(data,fp=fp,ensure_ascii=False)
print(data)
print("over!!!")