홈>
다음 웹 사이트에서 데이터를 가져 오기 위해 웹 스크레이퍼를 만들려고합니다 (나중에 동일한 웹 사이트의 여러 항공사에 대해 수행하고 싶습니다) : https://www.flightradar24.com/data/airlines/kl-klm/ 경로
현재 다음 코드가 있습니다 :
from bs4 import BeautifulSoup
import requests
airlines = ['kl-klm']
for a in airlines:
url = 'https://www.flightradar24.com/data/airlines/' + a + '/routes'
page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')
print(soup)
이것은 전체 페이지의 소스 코드를 제공하지만 스크립트 태그 내에서 특정 텍스트 덩어리를 추출하고 싶습니다.
var arrRoutes=[{"airport1":{"country":"Denmark","iata":"AAL","icao":"EKYT","lat":57.092781,"lon":9.849164,"name":"Aalborg Airport"},"airport2":{"country":"Netherlands","iata":"AMS","icao":"EHAM","lat":52.308609,"lon":4.763889,"name":"Amsterdam Schiphol Airport"}},{"airport1":{"country":"United Kingdom","iata":"ABZ","icao":"EGPD","lat":57.201939,"lon":-2.19777,"name":"Aberdeen International Airport"},"airport2":{"country":"Netherlands","iata":"AMS","icao":"EHAM","lat":52.308609,"lon":4.763889,"name":"Amsterdam Schiphol Airport"}}...
... 등 목록 끝까지 끝까지
각 공항에 대한 총 인바운드 및 아웃 바운드 항공편 수를 찾을 수 있도록 어떻게 추출 할 수 있습니까? 예를 들어 Amsterdam Schiphol Airport가 공항 1 또는 2로 표시되는 총 횟수는 몇 번입니까?
먼저 HTML에서 문자열을 추출한 다음 사전을 사용하여 파이썬 목록으로 변환하는 방법이 있습니까? 아니면 문자열의 각 요소를 직접 계산하는 것이 더 합리적입니까?
- 답변 # 1
- 답변 # 2
re.compile
이용예 :
import re soup = BeautifulSoup(page.text, 'html.parser') jData = soup.find("script", text=re.compile(r"var arrRoutes=.*?")).string print( jData.replace("var arrRoutes=", ""))
출력 :
[{"airport1":{"country":"Denmark","iata":"AAL","icao":"EKYT","lat":57.092781,"lon":9.849164,"name":"Aalborg Airport"},"airport2":{"country":"Netherlands","iata":"AMS","icao":"EHAM","lat":52.308609,"lon":4.763889,"name":"Amsterdam Schiphol Airport"}},{"airport1":{"country":"United Kingdom","iata":"ABZ","icao":"EGPD","lat":57.201939,"lon":-2.19777,"name":"Aberdeen International Airport"},"airport2":{"country":"Netherlands","iata":"AMS","icao":"EHAM","lat":52.308609,"lon":4.763889,"name":"Amsterdam Schiphol Airport"}},......
관련 자료
- 파이썬에서 정규식 (refindall)을 사용하여 텍스트에서 15 자리 문자열 추출
- python - 텍스트 문자열에서 숫자를 추출하여 데이터 프레임의 별도 열로 이동
- python - 특수 문자가 포함 된 문자열의 일부 (숫자)를 어떻게 추출 할 수 있습니까?
- rust - 문자열 내부에서 매크로 인수 추출
- postgres regex - 패턴의 마지막 발생과 줄 끝 이후의 문자열 추출
- python - 정규식을 사용하여 문자열과 줄 바꾸기 문자 (/ n) 사이의 텍스트 추출
- r - 숫자와 문자가 혼합 된 문자열에서 가장 큰 숫자 추출
- javascript - JS에서 dd-mmm-yyyy 형식의 문자열에서 날짜를 추출하는 방법
- 배치 스크립트가 문자열을 올바르게 해석하지 못하는 이유
- 내 Google 스크립트에서 '예기치 않은 문자열 오류'가 발생합니다
- javascript - findindex () - 문자열은 함수가 아닙니다 google apps script
- Selenium Python을 사용하여 # shadow-root (open) 내에서 정보를 추출하는 방법은 무엇입니까?
- split - 파이썬의 API 응답에서 특정 문자열을 추출하는 방법은 무엇입니까?
- 다른 파일의 같은 줄에서 문자열 패턴의 여러 발생을 문자열과 일치하는 숫자로 바꾸는 awk 스크립트
- linux - Bash 스크립트로 XML 파일에서 특정 키워드 추출
- regex - Hive의 문자열에서 책 이름 추출
- reactjs - Firestore 업데이트 함수 내에서 작동하지 않는 문자열 보간 형식
- html - Python을 사용하여 DIV 내의 태그에서 제목을 추출하는 방법은 무엇입니까?
- macos - 문자열과 문자열을 비교하는 Bash 스크립트
- go - Golang에서 중첩 된 JSON을 문자열로 추출
관련 질문
- python : 일대다 관계 flask-sqlalchemy를 식별하는 적절한 방법입니까?
- python에서 멀티스레딩을 사용할 때 queue.put이 동일한 결과를 스택에 두 번 이상 추가하는 이유는 무엇입니까?
- python : 아나콘다를 사용하여 jupyter 노트북에 영어 공간 모델을 설치하는 방법
- python : pyglet: on_resize가 그래픽을 깨뜨립니다.
- python : 파이썬을 설치하는 설치 프로그램을 어떻게 만들 수 있습니까?
- python : for 루프를 사용하여 각 항목 없이 모든 목록을 인쇄하려면 어떻게 해야 합니까? 파이썬에 대안이 있습니까?
- PyTelegramBotAPI는 python3.9에서 send_invoice를 보낼 수 없습니다.
- python : 파이썬 함수에서 하드 코딩된 문자열 값을 피하는 방법
- bash 스크립트에서 올바른 Python 설치를 동적으로 선택하십시오.
- python : 여러 함수 호출에 대해 원래 난수 출력 유지 [중복]
ast.literal_eval
를 사용하여 파이썬리스트에 데이터를 추출 할 수 있습니다 . 간단한 함수find_airport()
를 만들었습니다. 데이터 및 공항 이름을 제공하고 airport_1 및 airport_2에 몇 번인지 반환합니다.인쇄 :
그리고 마지막에 :
"암스테르담 스키폴 공항"