目标
爬取城市无印良品门店信息,保存为csv文件到本地。
项目准备
软件:Pycharm
第三方库:requests,fake_useragent,csv
网站地址:https://www.muji.com/storelocator/?c=cn
网站分析
打开网站看一下。
抓包看一下F12检查元素选择Network,输入框要输入一下城市名称。这里尝试输入上海市。
这是各种数据包。
打开这个数据包,会发现这里就是很多门店的详情信息。
反爬分析
同一个ip地址去多次访问会面临被封掉的风险,这里采用fake_useragent,产生随机的User-Agent请求头进行访问。
网址分析
真实的链接地址,试一下能不能找到什么规律。
https://www.muji.com/storelocator/_ACTION=_SEARCH&c=cn&lang=LC&baidu_flag=1&keyword=%E4%B8%8A%E6%B5%B7%E5%B8%82
https://www.muji.com/storelocator/_ACTION=_SEARCH&c=cn&lang=LC&baidu_flag=1&keyword=%E8%8B%8F%E5%B7%9E%E5%B8%82
输入几个不同的城市,发现只有后面keyword=后面的发生变化。经过验证,在其后输入城市名称就可以成功访问。
代码实现
1.导入相对应的第三方库,定义一个class类继承object,定义init方法继承self,主函数main继承self。
import requests
from fake_useragent import UserAgent
import csv
class MUJI(object):
def __init__(self):
self.url='https://www.muji.com/storelocator/?_ACTION=_SEARCH&c=cn&lang=LC&baidu_flag=1&keyword={}'
ua = UserAgent(verify_ssl=False)
for i in range(1, 100):
self.headers =