>  기사  >  백엔드 개발  >  Python 데이터는 어디에 크롤링되고 저장되나요?

Python 데이터는 어디에 크롤링되고 저장되나요?

(*-*)浩
(*-*)浩원래의
2019-10-30 14:03:304283검색

Python 데이터는 어디에 크롤링되고 저장되나요?

어제 퇴근 후 문득 웹 페이지의 내용을 캡처하는 크롤러를 작성해야겠다는 생각이 들었습니다. 간단하게 Python의 기본 구문을 익히고 한 시간 정도 투자한 후, 인터넷에 있는 예제를 참고하여 크롤러를 작성했습니다. (추천 학습: Python 비디오 튜토리얼)

Python 데이터는 일반적으로 파일이나 데이터베이스에 로컬로 크롤링되어 저장되지만 파일 형식은 더 복잡합니다. 생각보다 간단합니다. 직접 크롤러를 작성해 가지고 놀면 데이터를 파일 형식으로 저장할 수 있습니다.

#coding=utf-8
import urllib.request
import re
import os
 
'''
Urllib 模块提供了读取web页面数据的接口,我们可以像读取本地文件一样读取www和ftp上的数据
urlopen 方法用来打开一个url
read方法 用于读取Url上的数据
'''
 
def getHtml(url):
    page = urllib.request.urlopen(url);
    html = page.read();
    return html;
 
def getImg(html):
    imglist = re.findall('img src="(http.*?)"',html)
    return imglist
 
html = getHtml("https://www.zhihu.com/question/34378366").decode("utf-8");
imagesUrl = getImg(html);
 
if os.path.exists("D:/imags") == False:
    os.mkdir("D:/imags");
    
count = 0;
for url in imagesUrl:
    print(url)
    if(url.find('.') != -1):
        name = url[url.find('.',len(url) - 5):];
        bytes = urllib.request.urlopen(url);
        f = open("D:/imags/"+str(count)+name, 'wb');
        f.write(bytes.read());
        f.flush();
        f.close();
        count+=1;

테스트 후에도 기본 기능을 계속 사용할 수 있습니다. 저는 정규 표현식에 익숙하지 않기 때문에 정규 매칭에 가장 많은 시간을 소비했습니다. 그래서 아직 시간이 좀 걸렸어요.

참고: 위 프로그램은 Python 3.5를 기반으로 합니다. python3과 python2에는 몇 가지 차이점이 있습니다. 처음 기본 문법을 보기 시작했을 때 몇 가지 함정에 빠졌습니다.

위 내용은 Python 데이터는 어디에 크롤링되고 저장되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.