파이썬은 임대 데이터 인스턴스를 크롤링, 작은 파충류 케이스의 항목이라고합니다!

첫째, 무슨 일이 파충류입니다

또한 "웹 크롤러"로 알려진 파충류는 자동으로 인터넷 및 웹 컨텐츠 다운로드 프로그램에 액세스 할 수있는 기능입니다. 바이두와 구글이 인터넷에 방대한 양의 정보를 검색하는 강력한 웹 크롤러를 사용하고 사용자가 양질의 검색 서비스를 제공하기 위해 다음 클라우드에 저장 것처럼, 또한 검색 엔진의 기초가된다.

둘째, 사용 파충류 무엇인가

당신은 파충류가 무엇을 사용하는 것입니다 배우, 검색 엔진 회사 일뿐만 아니라, 말할 수 있는가? 하하, 누군가가 마침내 지점으로 물었다. 유추가 : 회사가 사용자 포럼을 구축, 많은 사용자 등 자신의 경험에 대해 이야기 포럼에 메시지를 남겨. A는 현재 사용자의 요구를 이해하고 준비에 제품 업데이트의 다음 반복, 사용자 환경 설정을 분석 할 필요가있다. 그래서 데이터를 가져 오는 방법을 물론, 포럼 약간 웹 크롤러를 얻을 필요가있다. 그래서 바이두, 구글뿐만 아니라, 많은 기업들이 급여에서 엔지니어 파충류를 고용하고 있습니다. 당신은 어떤 작업 사이트에 검색, 일자리와 급여의 수에서 "파충류 엔지니어"모양이 얼마나 인기 크롤러 이해하는 범위.

파충류 셋째, 원칙

개시 요청 : 응답 대상 사이트 서버에 대한 요청 (요구), 및 대기를 전송하는 HTTP 프로토콜을 통해 대상 사이트.

컨텐츠 수집 응답 : 서버가 정상 응답 할 수있는 경우, 응답을 얻을 것이다. 응답 내용 등, 응답의 내용이 HTML, JSON 문자열 (예 : 이미지 등) 바이너리 데이터 일 수있다 캡처 할 페이지의 콘텐츠이며,.

해석 내용 : 콘텐츠는 HTML에 의해 수득 될 수 있고, 일반 식 페이지 파싱 라이브러리로 해결 될 수있다, JSON 될 수도 직접 JSON 객체를 파싱 변환 될 수 이진 데이터 일 수 있고, 또는 추가 처리를 위해 저장 될 수있다.

데이터 저장 : 데이터 해석의 종료 후, 보존한다. 텍스트 문서가 데이터베이스에 저장 될 수는 모두 저장할 수 있습니다.

네, 파이썬 파충류 예

정보 파충류, 원칙의 역할의 정의 앞에 도입, 나는 작은 파트너의 많은 파충류에 관심이, 그리고 그것을 시도 할 준비가있을 시작했다 믿습니다. 그리고 지금에, "건조"파이썬 코드 파충류의 간단한 조각을 붙여 준비하기 :

1. 준비 작업 : MySQL 데이터베이스, 새 데이터베이스 시험을 설치, PYCHARM이 소프트웨어를 설치 파이썬 환경을 설치, 파충류 집의 결과 [SQL 문을 저장하는 데 사용되는 테이블의 건설 시험 : 테이블 하우스를 만듭니다 (가격 VARCHAR (88), VARCHAR 부 (88), 영역 VARCHAR (88))]

2. 파충류 목표 : 단위 면적 당 가격을 크롤링하고 목록에서 온라인으로 모든 링크를 주택을 임대 한 후 데이터베이스에 크롤러 구조를 저장합니다.

3. 파충류의 소스 코드를 다음

가져 오기 요청 #의 요청 URL 페이지 내용 

에서 BS4 가져 오기 BeautifulSoup로 #은 페이지 요소 가져 

오기 pymysql #의 링크 데이터베이스 

가져 오기 시간 #의 시간 기능 

가져 오기 LXML의 # 구문 분석 라이브러리 (HTML \의 XML 파싱, 지원 XPATH 구문 분석에 대한 지원) 

#의 GET의 요청에 의해 : get_page 기능 역할 링크 된 콘텐츠 URL의 방법 BeautifulSoup로 처리 할 수있는 형식으로 통합 한 후 얻어지고, 

DEF 다음 get_page (URL) 

응답 = requests.get (URL) 

스프 = BeautifulSoup로 (response.text, ' LXML ' ) 

반환 스프 

#의 동작 get_links 기능 : 위젯 모든 임차인 링크의 목록

DEF의 get_links (LINK_URL)는 

스프 = get_page (LINK_URL)를 

links_div = soup.find_all ( ' DIV ' 은 class_ = " PIC 패널 " ) 

링크 [div.a.get (= ' href를 ' ) 에 대한 DIV links_div] 

리턴 링크 

#의 가격, 단위 면적 등 : 임대 정보 페이지 얻을 : get_house_info 기능의 역할이다 

DEF get_house_info (house_url) 

스프 = get_page (house_url) 

. 가격 = soup.find ( ' 범위 ' , class_ = " ")는 .text 

단위 = soup.find ( ' 기간 ' , class_ = ' 단위 ' ) .text.strip () 

영역 = ' 테스트 '  #는 이 지역 우리는 테스트하기위한 필드 테스트를 사용자 정의 

정보 = { 

' 가격 ' , 가격 :. 

' 단위 ' : 단위, 

' 지역 ' : 지역 

} 

반환 정보 

#의 구성 정보에 대한 데이터베이스 사전에 기록 된 

데이터베이스 = { 

' 호스트 ' : ' 127.0.0.1 ' , 

'데이터베이스 ' : ' 시험 ' , 

' 사용자 ' : ' 루트 ' , 

' 비밀번호 ' : ' 루트 ' , 

' 캐릭터 세트 ' : ' utf8mb4 ' } 

#의 링크 데이터베이스 

DEF의 get_db (설정) : 

리턴 pymysql.connect (** 설정) 

# 얻어지는 크롤러 데이터베이스에 데이터를 삽입 

DEF 인서트 (DB, 하우스) 
 = " "{} ", " * 2 + "'{}' "

sql_values = values.format (주택 [ " 가격 " , 하우스 [ ' ' , 주택 [ ' 지역 ' ]) 

SQL = "" " 

INSERT INTO 하우스 (. 가격, 수량, 구역)을 값 ({}) 

" "" .format (sql_values) 

커서 = db.cursor () 

cursor.execute (SQL) 

db.commit () 

# 주요 과정 : 1. 2. 데이터베이스에 대한 연결이 첫 번째 루프 3.FOR에서 URL의 개별 목록의 목록을 얻을 수 URL 데이터베이스에 의해 시작 받고 특정 정보 (가격 등) 4. 하나의 목록 (파이썬 학습 교환기 (631) 441 (315)) 

dB = get_db (데이터베이스) 

링크 = get_links ( ' https://bj.lianjia.com/zufang/ ') 

에 대한링크 에서 링크 : 

time.sleep ( 2 ) 
 = get_house_info (링크) 

삽입 (데시벨, 집)

 

첫째, 파이썬 크롤러에 기록 된 "工欲善其事必先利其器는"같은 이유로, 파충류 파일 라이브러리의 다양한 가져와야 작성하는 과정이며, 우리가 파충류를 완료하는 데 도움이 유용하게 이용할 수있다 대부분의 작업은, 우리는 할 수있는 관련 기능의 이전에 대한 변명이 필요합니다. 가져 오기 형식은 가져 오기 라이브러리 파일 이름입니다. 그것은 여기 언급 PYCHARM에서 라이브러리를 설치하는 것입니다해야한다, 커서는 경우, 설치도 (핍 라이브러리 파일 이름 설치) 라인을 명령 할 수있다, 설치 라이브러리 파일 이름을 누릅니다 Ctrl + Alt 키 방식에 배치 할 수 있습니다 설치 후 후속 프로그램이 확실히 파충류의 오차가있을 것입니다, 실패하거나 설치되지 않습니다. 이 코드에서 다섯 개 가지 요소는 프로그램 관련 라이브러리 전에 소개 : URL이 페이지의 콘텐츠를 요청에 대한 요청을하며 BeautifulSoup로는 페이지 요소를 구문 분석하는 데 사용, 데이터베이스에 연결 pymysql, 시간이 다양한 시간 기능을 포함, LXML는 구문 분석 라이브러리 파일 HTML, XML 형식, 그러나 그것을 구문 분석도 XPATH 구문 분석을 지원합니다.

둘째, 우리는 파충류의 마지막 주 프로그램 코드에서 전체 과정을보기 시작 :

데이터베이스에 연결하여 Get_db 기능. 그리고 깊은 get_db 기능으로, 데이터베이스 연결이 Pymysql에게 연결 함수를 호출하여 달성 볼 수 있습니다, 여기 ** 인 seting 파이썬 키워드 인수를 수집하는 방법, 우리는 데이터베이스 연결 정보가 사전 데이터베이스에 기록됩니다 넣어 레인, 사전의 정보는 주장을 연결합니다.

get_links으로 모든 홈 네트워크 임대 주택 목록의 체인 링크 기능을 수행합니다. 목록 양식의 모든 목록의 존재에 링크를 연결합니다. get_links는 요청에 의해 홈 네트워크 홈 페이지 요청의 체인의 내용을 얻기 위해 기능하고 처리 할 수있는 형식으로, BeautifuSoup 인터페이스 형식으로 콘텐츠를 구성 할 수 있습니다. 마지막으로, 모든 사업부 스타일 전기 영동 find_all 기능으로 사진을 포함하고, 다음 내용 (즉, href 속성의 내용입니다) 모든 사업부 스타일 for 루프를 포함의 모든 하이퍼 링크가에 저장됩니다 (A) 하이퍼 링크 탭을 얻을 찾기 링크 목록입니다.
FOR 루프를 통해 링크되는 모든 링크 (링크 중 하나 등 : https://bj.lianjia.com/zufang/101101570737.html )

찾기 기능 요소의 위치를 ​​사용하여 단위 영역 정보에 따라, 가격 3) 링크를 얻는 방법과 동일한 방법, 2)을 사용하여,이 정보는 내부의 사전 정보에 기록된다.

집으로 데이터베이스 테이블에 결과 정보의 정보에 링크를 삽입하는 함수를 호출합니다. 깊은 삽입 기능으로, 우리는 커서 기능 커서 데이터베이스 () 다음 응답 기능을 달성하기 위해 데이터베이스 작업을 커밋하여 SQL 구문의 구현에 있음을 알 수 있습니다. 여기에 SQL 문 문구는 형식으로 포맷 기능을 사용하여, 이것은 다중 기능을 촉진하기 위해 오히려 특별 수행한다.

마지막으로, 파충류 코드를 실행, 당신은에있는 데이터에 기록 된 모든 명부의 홈 네트워크 홈의 사슬을 볼 수 있습니다. (참고 : 테스트 나 수동 테스트 문자열 지정한)

 

의 image.png
 

추신 : 사실, 파이썬은 전체 프로세스에 익숙 후, 등등 SQL 문을 구축하는 방법 페이지 요소를 얻는 방법과 같은 몇 가지 세부 사항에주의 할 필요가 어려운 파충류, 파충류 없습니다. 문제가 당황하지 마세요, 우리는 마침내 예상되는 구조를 얻을, 하나의 버그로 하나를 쓸어 수있는 IDE의 도움말을 참조하십시오.

추천

출처www.cnblogs.com/qingdeng123/p/11299528.html