Python이 ajax(클래식)에 의해 동적으로 생성된 데이터를 크롤링하는 방법을 설명하기 위해 Taobao 주석을 수집하는 예를 사용합니다.

不言
풀어 주다: 2018-04-18 11:14:43
원래의
3934명이 탐색했습니다.

Python을 배우다 보면 웹 사이트 콘텐츠가 Ajax 동적 요청 및 비동기 새로 고침을 통해 생성된 json 데이터이고 Python을 통해 정적 웹 콘텐츠를 크롤링하는 이전 방법이 불가능한 상황에 직면하게 되므로 이번 기사에서는 그 방법에 대해 이야기하겠습니다. Python에서 ajax에 의해 동적으로 생성된 데이터를 크롤링합니다.

Python을 배우다 보면 웹 사이트 콘텐츠가 Ajax 동적 요청 및 비동기 새로 고침을 통해 생성된 json 데이터이고 Python을 통해 정적 웹 콘텐츠를 크롤링하는 이전 방법이 불가능한 상황에 직면하게 되므로 이 글에서는 이 글에서 설명하겠습니다. Python에서 ajax에 의해 동적으로 생성된 데이터를 크롤링하는 방법.

정적인 웹 콘텐츠를 읽는 방법에 관심이 있는 분들은 이 글의 내용을 확인해 보세요.

여기에서는 Taobao 댓글 크롤링을 예로 들어 방법을 설명합니다.

이것은 주로 4단계로 나뉩니다:

먼저 Taobao 리뷰를 받을 때 ajax는 링크(url)를 요청합니다

두 번째, ajax 요청에 의해 반환된 json 데이터를 가져옵니다

셋, 파이썬을 사용하여 json 데이터 파싱하기

Four 파싱된 결과 저장하기

1단계:

타오바오 댓글을 받을 때, ajax 요청 링크(url) 여기서는 크롬 브라우저를 사용합니다. 완료합니다. Taobao 링크를 열고 검색창에서 "신발"과 같은 제품을 검색합니다. 여기서는 첫 번째 제품을 선택합니다.

그런 다음 새 웹페이지로 이동합니다. 여기서는 사용자 리뷰를 크롤링해야 하므로 Accumulated Ratings를 클릭합니다.

그런 다음 제품에 대한 사용자 평가를 볼 수 있습니다. 이때 웹 페이지를 마우스 오른쪽 버튼으로 클릭하여 리뷰 요소를 선택하거나 F12를 사용하여 직접 열고 그림과 같이 네트워크 옵션을 선택합니다. 사진에서:

사용자 댓글에서 아래쪽으로 스크롤하여 다음 또는 두 번째 페이지를 클릭하면 네트워크에 동적으로 추가된 여러 항목이 표시됩니다. list_detail_rate.htm?itemId=로 시작합니다. 35648967399.

그런 다음 이 옵션을 클릭하면 오른쪽 옵션 상자에서 링크에 대한 정보를 볼 수 있으며 요청 URL에 링크 내용을 복사하려고 합니다.

브라우저의 주소 표시줄에 방금 얻은 URL 링크를 입력합니다. 페이지를 열면 필요한 데이터가 반환되지만 JSON 데이터이기 때문에 지저분해 보입니다.

2 ajax 요청에서 반환된 json 데이터 가져오기

다음으로 URL에서 json 데이터를 가져옵니다. 제가 사용하는 Python 편집기는 pycharm입니다. Python 코드를 살펴보겠습니다.

# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import requests
url='https://rate.tmall.com/list_detail_rate.htm?itemId=35648967399&spuId=226460655&sellerId=1809124267ℴ=3&currentPage=1&append=0&content=1&tagId=&posi=&picture=&ua=011UW5TcyMNYQwiAiwQRHhBfEF8QXtHcklnMWc%3D%7CUm5OcktyT3ZCf0B9Qn9GeC4%3D%7CU2xMHDJ7G2AHYg8hAS8WKAYmCFQ1Uz9YJlxyJHI%3D%7CVGhXd1llXGVYYVVoV2pVaFFvWGVHe0Z%2FRHFMeUB4QHxCdkh8SXJcCg%3D%3D%7CVWldfS0RMQ47ASEdJwcpSDdNPm4LNBA7RiJLDXIJZBk3YTc%3D%7CVmhIGCUFOBgkGiMXNwswCzALKxcpEikJMwg9HSEfJB8%2FBToPWQ8%3D%7CV29PHzEfP29VbFZ2SnBKdiAAPR0zHT0BOQI8A1UD%7CWGFBET8RMQszDy8QLxUuDjIJNQA1YzU%3D%7CWWBAED4QMAU%2BASEYLBksDDAEOgA1YzU%3D%7CWmJCEjwSMmJXb1d3T3JMc1NmWGJAeFhmW2JCfEZmWGw6GicHKQcnGCUdIBpMGg%3D%3D%7CW2JfYkJ%2FX2BAfEV5WWdfZUV8XGBUdEBgVXVJciQ%3D&isg=82B6A3A1ED52A6996BCA2111C9DAAEE6&_ksTS=1440490222698_2142&callback=jsonp2143' #这里的url比较长
content=requests.get(url).content
로그인 후 복사

print content #인쇄된 콘텐츠는 이전에 웹페이지에서 얻은 json 데이터입니다. 사용자 의견을 포함합니다.

여기 내용은 우리에게 필요한 json 데이터입니다. 다음 단계는 이러한 json 데이터를 구문 분석하는 것입니다. 삼 json을 가져와야 합니다

cont=requests.get(url).content # 웹 페이지에서 json 데이터 가져오기rex=re.compile(r'w+[(]{1}(.*)[)]{ 1}') #정규식 제거 cont 데이터에서 중복되는 부분은 실제 json 형식 데이터 {"a":"b","c":"d"}con=json.loads( content,"gbk") json 사용 로드 함수는 콘텐츠 콘텐츠를 json 라이브러리 함수로 처리할 수 있는 데이터 형식으로 변환합니다. win 시스템의 기본값은 gbk

count이므로 "gbk"는 데이터의 인코딩 방법입니다. =len(con['rateDetail']['rateList']) # 사용자 댓글 수를 가져옵니다(여기는 현재 페이지에만 적용됩니다)

for i in xrange(count):

print con['rateDetail'] ['rateList'][i]['appendComment']

#Loop traversal 사용자 코멘트 및 출력 (데이터는 필요에 따라 저장할 수도 있습니다. 네 번째 부분을 확인할 수 있습니다.)

여기서 어려운 점은 경로를 찾는 것입니다. 지저분한 json 데이터 속 사용자 댓글

IV 파싱된 결과 저장

여기에서 사용자는 사용자의 댓글 정보를 csv 형식으로 저장하는 등 로컬에 저장할 수 있습니다.

이 글은 여기까지입니다. 모두 마음에 드셨으면 좋겠습니다.

위 내용은 Python이 ajax(클래식)에 의해 동적으로 생성된 데이터를 크롤링하는 방법을 설명하기 위해 Taobao 주석을 수집하는 예를 사용합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿