[그림 상세 설명] scrapy 파충류 와 동적 페이지 - 체크 망 직위 정보 (1)
업데이트
주의: 현재 체크 망 은 json 구 조 를 바 꾸 었 습 니 다. 이전 에는 'content' - 'result' 이 었 는데 지금 은 'content' - 'position Result' - 'result' 로 바 뀌 었 습 니 다. 그래서 여러분 들 은 코드 를 쓸 때 'position Result' 의 해석 을 덧 붙 이 는 것 에 특히 주의해 야 합 니 다.
현재 많은 사이트 들 이 Ajax (비동기 로드) 라 는 기술 을 사용 하고 있다. 즉, 웹 페이지 가 열 렸 으 니 먼저 위의 일부분 을 보 여 준 다음 에 나머지 물건 을 천천히 로드 하 는 것 이다.그래서 당신 은 많은 웹 페이지 를 볼 수 있 습 니 다. 모두 천천히 나 오 거나 일부 사이트 가 당신 의 이동 에 따라 많은 정 보 를 천천히 불 러 옵 니 다.이런 웹 페이지 는 웹 페이지 의 로드 속도 가 매우 빠르다 는 것 이 장점 이다.
그러나 이것 은 우리 가 파충류 라 고 쓰 는 것 에 불편 하 다. 왜냐하면 너 는 항상 네가 원 하 는 것 을 기어 오 르 지 못 하기 때문이다!
우 리 는 예 를 들 어, 나 는 최근 에 체크 망 과 관련 된 직위 상황 의 데 이 터 를 분석 하고 싶 어서, 나 는 그들 사이트 에 올 랐 다. (주의! 기어 오 르 는 내용 은 학술 교류 에 만 국한 된다! 상업 용도 로 사용 하지 마 세 요!)http://www.lagou.com/zhaopin/
여기 일자리 정보 가 많 습 니 다.여기 우리 가 다음 페이지 를 누 를 때 주의 하 세 요.
우 리 는 웹 주소 가 업데이트 되 지 않 고 바로 불 러 온 것 을 발견 할 수 있 습 니 다!!
이것 은 분명히 동적 페이지 입 니 다. 우 리 는 파충 이 를 써 서 홈 페이지 를 올 라 가 어떤 내용 을 얻 을 수 있 는 지 보 겠 습 니 다. 지금 은 이런 파충 이 를 빨리 쓸 수 있 겠 죠?(사실 아무것도 없다)
출력 을 볼 수 있 습 니 다. 모든 소스 코드 를 한 번 훑 어 볼 수 있 습 니 다. 그 안에 직위 에 대한 정보 가 없습니다!
만약 당신 이 직관 적 이지 않다 고 생각한다 면, 나 는 당신 에 게 한 수 를 가르쳐 드 리 겠 습 니 다. 우 리 는 간단하게 그것 을 html 로 출력 해 보 겠 습 니 다.
이런 상황 이 야.중요 한 부분 은 요!비 었 어!!!
웹 페이지 찾기
이 럴 때 어 떡 하지?메시지 가 안 오 르 나?
물론 아니 야, 네가 생각해 봐. 그것 이 웹 페이지 에 표시 되 기만 하면 틀림없이 어 딘 가 에 있 을 거 야. 단지 우리 가 찾 지 못 했 을 뿐 이 야.
다만, 이때 우 리 는 시간 을 좀 써 야 한다.우 리 는 아까 홈 페이지 로 돌아 가서 F12 를 누 르 는 것 이 좋 겠 다. 이때 우 리 는 network 기능 을 사용한다.
이 럴 때 안에 아무것도 없 는 것 을 볼 수 있 습 니 다. 열 린 네트워크 자원 의 정보 만 기록 하기 때 문 입 니 다.우 리 는 F5 를 눌 러 새로 고침 합 시다.
너 는 물건 이 찍찍 거리 기 시작 하 는 것 을 볼 수 있다..............................................................................
그리고 우 리 는 수상 한 웹 페이지 자원 을 찾기 시작 했다.우선, 그림, css 같은 것 은 건 너 뛸 수 있 습 니 다. 여기 비결 이 있 습 니 다. 일반적으로 이런 데 이 터 는 json 으로 저장 되 기 때문에 필터 에 json 을 입력 하려 고 합 니 다.
우 리 는 두 개의 자원 이 매우 비슷 하 다 는 것 을 발견 했다. 그 중 하 나 는 바로 position 가 있다. 우 리 는 오른쪽 단 추 를 누 르 고 새 탭 에서 열 어 보 았 다.
복잡 해 보이 지만 실제로는 조리 가 있 고 모두 키 값 이 대응 하 는 것 이 제 이 슨 형식 으로 웹 데이터 교환 에 특히 적합 하 다.
여기 우리 가 발견 한 게 이거 야!모든 직위 정보 가 안에 있 으 니, 우 리 는 서둘러 그것 의 인터넷 주 소 를 기록 합 시다.
웹 구조
웹 페이지 주 소 를 관찰 한 결과 추측 할 수 있 습 니 다.http://www.lagou.com/jobs/positionAjax.json?이 단락 은 고정 적 인 것 이 고, 나머지 우 리 는 위 에 북경 이 있다 는 것 을 발견 했다.
우 리 는 이곳 을 상해 로 바 꾸 어 보 았 는데, 또 하나의 홈 페이지 내용 이 나 오 는 것 을 볼 수 있 었 는데, 마침 이전 홈 페이지 와 업무 지 를 상해 로 바 꾸 어 대응 하 는 내용 과 일치 하 였 다.
그래서 우 리 는 결론 을 얻 을 수 있 습 니 다. 여기 city 라벨 은 당신 이 선택 한 근무 지 를 대표 합 니 다. 그러면 우 리 는 업무 경험, 학력 요구, 모든 것 을 선택 하면 됩 니까?바로 볼 수 있 으 니 사이트 주소 가 많이 바 뀌 었 다.
import time
time.time()
파충 류 를 만들다
이 페이지 의 형식 은 제 이 슨 을 사용 하기 때문에 우 리 는 제 이 슨 형식 으로 내용 을 잘 읽 을 수 있다.여기 서 preview 로 전환 한 다음 content - result 를 누 르 면 먼저 목록 을 발견 하고 다시 누 르 면 모든 직위 의 내용 을 볼 수 있 습 니 다.왜 여기 서 봐?좋 은 점 은 이 제 이 슨 파일 의 등급 구 조 를 알 고 인 코딩 을 기다 리 는 것 이다.
전체 처리 코드 는 그 몇 마디 로 나 올 수 있 습 니 다. 여 기 는 방금 의 등급 구조 와 완전히 일치 합 니 다.콘 텐 츠, 그리고 result, 그리고 각 직위 의 정보.
jdict = json.loads(response.body)
jcontent = jdict["content"]
jresult = jcontent["result"]
for each in jresult:
print each['city']
print each['companyName']
print each['companySize']
print each['positionName']
print each['positionType']
print each['salary']
print ''
물론 제 이 슨 을 끌 어 들 여야 지.
import json
우 리 는 실행 해서 효 과 를 볼 수 있다.
그리고 우 리 는 정 보 를 파일 이나 데이터베이스 에 저장 할 수 있다. 그것 이 바로 이전에 배 운 내용 이다.
항목 수정. py
당신 이 필요 로 하 는 내용 에 가입 하 세 요.
settings. py 수정
데이터 베 이 스 를 저장 해 야 하 는 지 파일 을 저장 해 야 하 는 지 전에 말 했 잖 아 요.
pipelines. py 수정
데이터 베 이 스 를 추가 해 야 한다 면, 여기에 데이터 베 이 스 를 추가 하여, 파일 을 기록 해 야 한다 면, 이 파일 을 수정 하지 않 아 도 될 것 입 니 다.
parse 수정 ()
데 이 터 를 item 에 넣 고 yield 를 넣 으 면 잘 아 실 거 예요.
그러나 여 기 는 한 페이지 의 내용 만 올 라 갔 는데 더 많은 페이지 의 내용 을 어떻게 얻 을 수 있 습 니까?저 는 다음 블 로그 에 소개 할 것 입 니 다. 관심 있 는 동 화 는 다음 페이지 의 내용 을 얻 으 면 위 에서 가르쳐 준 자원 을 찾 는 방법 을 직접 시도 해 보 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.