Python을 사용하여 Google 유기적 이벤트 결과를 스크랩하는 방법
11495 단어 htmlwebscrapingtutorialpython
소개
이 블로그 게시물은 Google의 웹 스크래핑 시리즈의 연속입니다.
여기에서 Python을 사용하여 자연 검색에서 Google 이벤트 결과를 스크랩하는 방법의 예를 볼 수 있습니다. 대체 API 솔루션이 표시됩니다.
수입품
import requests, json
from bs4 import BeautifulSoup
from serpapi import GoogleSearch
스크랩 할 것
프로세스
컨테이너, 제목, 시간, 주소 선택
CSS
선택기요일 및 월 선택
CSS
선택기링크 선택
CSS
선택자암호
import requests, json
from bs4 import BeautifulSoup
headers = {
"User-Agent":
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
"(KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582"
}
response = requests.get("https://serpapi.com/searches/00664d3f0c817ad7/60df062e797ac6552141b3d4.html", headers=headers)
soup = BeautifulSoup(response.text, 'lxml')
events_data = []
for event in soup.select('.PaEvOc'):
title = event.select_one('.YOGjf').text
link = event.select_one('.odIJnf a')['href']
date_day = event.select_one('.gsrt.v14Sh.OaCVOb .UIaQzd').text
date_month = event.select_one('.gsrt.v14Sh.OaCVOb .wsnHcb').text
when = event.select_one('.cEZxRc:nth-child(1)').text
address_street = event.select_one('.cEZxRc:nth-child(2)').text
address_city = event.select_one('.cEZxRc:nth-child(3)').text
events_data.append({
'title': title,
'link': link,
'date': {'start_date': f'{date_day} ' + date_month, 'when': when},
'address': f'{address_street} - {address_city}',
})
print(json.dumps(events_data, indent=2, ensure_ascii=False))
-----------
'''
[
{
"title": "Ronan Keating: Twenty Twenty - London 2021",
"link": "https://www.google.com/search?q=london+events&oq=london+events&sourceid=chrome&ie=UTF-8&ibp=htl;events&rciv=evn&sa=X&ved=2ahUKEwjnka6iscTxAhWOGs0KHYs4B48Q5bwDegQICBAB#fpstate=tldetail&htidocid=L2F1dGhvcml0eS9ob3Jpem9uL2NsdXN0ZXJlZF9ldmVudC8yMDIwLTA2LTI1fDM4MDE1NTc5MjQ1NTI2NDA1OQ%3D%3D&htivrt=events&mid=/g/11fskmgg3v",
"date": {
"start_date": "3 Jul",
"when": "Tomorrow, 7:30 PM"
},
"address": "Eventim Apollo, 45 Queen Caroline St - London, United Kingdom"
}
]
...
'''
Google 이벤트 엔진 결과 API 사용
SerpApi는 5,000회 검색의 무료 평가판이 있는 유료 API입니다.
import json # used for pretty output
from serpapi import GoogleSearch
params = {
"api_key": "YOUR_API_KEY",
"engine": "google",
"q": "london events",
"gl": "us",
"hl": "en"
}
search = GoogleSearch(params)
results = search.get_dict()
for event_result in results['events_results']:
print(json.dumps(event_result, indent=2, ensure_ascii=False))
------------
'''
{
"title": "Ronan Keating: Twenty Twenty - London 2021",
"date": {
"start_date": "Jul 3",
"when": "Tomorrow, 7:30 PM"
},
"address": [
"Eventim Apollo, 45 Queen Caroline St",
"London, United Kingdom"
],
"link": "https://www.google.com/search?q=london+events&oq=london+events&sourceid=chrome&ie=UTF-8&ibp=htl;events&rciv=evn&sa=X&ved=2ahUKEwjnka6iscTxAhWOGs0KHYs4B48Q5bwDegQICBAB#fpstate=tldetail&htidocid=L2F1dGhvcml0eS9ob3Jpem9uL2NsdXN0ZXJlZF9ldmVudC8yMDIwLTA2LTI1fDM4MDE1NTc5MjQ1NTI2NDA1OQ%3D%3D&htivrt=events&mid=/g/11fskmgg3v",
"thumbnail": "https://serpapi.com/searches/60df062e797ac6552141b3d4/images/b43677f4b21fbd9cbf2530c260e8afdb19cef485ab5a5f52c442f77151330da1.jpeg"
}
...
'''
연결
Code in the online IDE • Google Events Engine Results API
아웃트로
질문이 있거나 제대로 작동하지 않거나 다른 내용을 작성하고 싶은 경우 댓글 섹션이나 Twitter(으)로 자유롭게 의견을 남겨주세요.
당신 것,
Dimitry 및 나머지 SerpApi 팀.
Reference
이 문제에 관하여(Python을 사용하여 Google 유기적 이벤트 결과를 스크랩하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dmitryzub/how-to-scrape-google-organic-events-results-using-python-3h9f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)