[Python 크롤러 튜토리얼] Python을 사용하여 특정 위치의 KFC 매장 목록 예시 코드 크롤링(페이징 지원)

Python으로 개발된 간단한 크롤러로, KFC 공식 홈페이지에 게시된 매장 목록을 크롤링하는 기능을 하며, 키워드 검색과 페이징을 지원합니다.

먼저 효과를 살펴보겠습니다.

请输入想要查询的城市:北京
抓取成功第1页成功!!!
抓取成功第2页成功!!!
抓取成功第3页成功!!!
抓取成功第4页成功!!!
抓取成功第5页成功!!!
抓取成功第6页成功!!!
抓取成功第7页成功!!!
抓取成功第8页成功!!!
抓取成功第9页成功!!!
抓取成功第10页成功!!!
抓取结束

프로그램을 실행한 후 인터페이스는 먼저 도시를 쿼리하라는 메시지를 표시하며 입력 후 데이터는 페이지별로 캡처되어 로컬 파일에 저장됩니다.

다음 코드에는 요청 모듈이 필요하며, 설치되지 않은 경우 실행해야 합니다.

pip3 install request

설치하다

import requests
import json
if __name__ == '__main__':
    url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
    kw = input('请输入想要查询的城市:')
    page = 1
    pageSize = 10
    while True:
        params = {
    
    
            'cname': '',
            'pid': '',
            'keyword': kw,
            'pageIndex': page,
            'pageSize': pageSize 
        }
        header = {
    
    
            '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, data=params, headers=header)
        res = response.json()
        shopCount = len(res['Table1'])
        if shopCount > 0:
            fileName = kw + str(page) + '.json'
            fileIndex = open('./' + fileName, 'w', encoding='utf-8')
            json.dump(res, fp=fileIndex, ensure_ascii=False)
            print('抓取成功第' + str(page) + '页成功!!!')
            page = page+1
        if shopCount < pageSize:
            print('抓取结束')
            break

추천

출처blog.csdn.net/one_and_only4711/article/details/126086184