Python 파충류 의 자동 기어 오 르 기 모 차 의 집 각 차 판매 데이터
목표 사 이 트 는 한 차 의 집 이 브랜드 자동차 차형 에 관 한 입 소문 모듈 과 관련 된 데이터 이다.예 를 들 어 우리 가 보 여 준 사례
Q5L
의 입 소문 페이지 는 다음 과 같다.https://k.autohome.com.cn/4851/#pvareaid=3311678
프 리 젠 테 이 션 방식 을 위해 서 는 위 에 있 는 이 사 이 트 를 직접 열 고 모든 입 소문 위치 로 끌 어 올 려 서 우리 가 이번 채집 에 필요 한 필드 를 찾 을 수 있 습 니 다.아래 그림 과 같 습 니 다.
채집 필드
우 리 는 페이지 를 넘 겨 서 브 라 우 저 사이트 에 변화 가 생 겼 음 을 발 견 했 습 니 다.여러분 은 다음 몇 페이지 의 사이트 주소 에 대해 규칙 을 찾 을 수 있 습 니 다.
https://k.autohome.com.cn/4851/index_2.html#dataList
https://k.autohome.com.cn/4851/index_3.html#dataList
https://k.autohome.com.cn/4851/index_4.html#dataList
위 에 적 힌 사이트 주소 에 대해 우 리 는 가 변 적 인 부분 이 차형(예 를 들 어4851
과 페이지(예 를 들 어2
,3
이라는 것 을 발견 했다.그래서 우 리 는4
인 자 를 다음 과 같이 구축 할 수 있다.
# typeid ,page
url = f'https://k.autohome.com.cn/{typeid}/index_{page}.html#dataList'
2.데이터 요청간단 한 테스트 를 통 해 역 기어 오 르 기 가 없 는 것 같다 는 것 을 발견 하면 간단 하 다.
우 리 는 먼저 필요 한 라 이브 러 리 를 도입 합 니 다.
import requests
import pandas as pd
import html
from lxml import etree
import re
그리고 데이터 요청 함 수 를 만 듭 니 다:
# ( typeid )
def get_html(typeid,page):
#
url = f'https://k.autohome.com.cn/{typeid}/index_{page}.html#dataList'
# ( , )
r = requests.get(url)
# ,
r = html.unescape(r.text)
#
return r
요청 한 데 이 터 는 바로 웹 페이지url
텍스트 입 니 다.우 리 는 다음 에html
로 총 몇 페이지 의 페이지 를 분석 한 다음 에re
채집 필드 로 분석 합 니 다.3.데이터 분석
페이지 를 넘 겨 야 하기 때문에,여기 서 우 리 는 먼저 re 정규 표현 식 을 통 해 전체 페이지 번 호 를 가 져 올 수 있 습 니 다.웹 페이지 데 이 터 를 보면 총 페이지 번 호 는 다음 과 같은 방식 으로 얻 을 수 있 습 니 다.
try:
pages = int(re.findall(r' (\d+) ',r)[0])
# ,
except :
print(f'{name} !')
continue
총 페이지 채집
수집 대기 필드 정보 에 대해 우 리 는 모두 노드
xpath
에 있 는 것 을 발견 했다.먼저 이 노드 데 이 터 를 찾 은 다음 에 하나씩 분석 할 수 있다.채집 대기 필드 정보 소재 노드
그 밖 에 우 리 는 각 페이지 에서 최대 15 개의 차형 입 소문 데 이 터 를 발견 했다.그래서 우 리 는 각 페이지 에서 15 개의 수집 대기 정보 데이터 세트 를 찾 아 수집 코드 를 옮 겨 다 닐 수 있다.
divs = r_html.xpath('.//div[@class="mouthcon-cont-left"]')
#
for div in divs:
#
mt = div.xpath('./div[@class="choose-con mt-10"]')[0]
#
infos = mt.xpath('./dl[@class="choose-dl"]')
# ,
item = {}
#
for info in infos:
key = info.xpath('.//dt/text()')[0]
# ,
if key == ' ':
item[key] = info.xpath('.//dd/a/text()')[0]
item[' '] = info.xpath('.//span[@class="font-arial"]/text()')[0]
# , id , api ( )
elif key == ' ':
# id
id = info.xpath('.//dd/a/@data-val')[0] +','+ info.xpath('.//dd/a/@data-evalid')[0]
#
jxs_url = base_jxs_url+ id+'|'
# ( json )
data = requests.get(jxs_url)
j = data.json()
#
item[key] = j['result']['List'][0]['CompanySimple']
else:
# ,
item[key] = info.xpath('.//dd/text()')[0].replace("\r
","").replace(' ','').replace('\xa0','')
4.데이터 저장역 기어 오 르 는 것 이 없 기 때문에 수집 한 데 이 터 를 직접
div[@class="mouthcon-cont-left"]
형식 으로 바 꾸 고pandas.DataFrame
파일 로 저장 하면 된다.
df = pd.DataFrame(items)
df = df[[' ', ' ', ' ', ' ', ' ', ' ']]
#
df.to_excel(r' .xlsx',index=None,sheet_name='data')
5.채집 결과 미리보기전체 파충류 의 과정 이 비교적 간단 하고 수집 한 데이터 도 비교적 규범 적 이다.본 고의 사례 인 아우디 Q5L 의 예 는 다음 과 같다.
파 이 썬 파충류 가 모 차 의 집 차 별 판매 데 이 터 를 자동 으로 수집 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 이 자동차 판매 데 이 터 를 수집 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.