Python을 사용하여 Google 비디오 결과 긁기

내용: 인트로, 가져오기, 스크랩할 항목, 프로세스, 코드, 링크, 아웃트로.

소개



이 블로그 게시물은 Google의 웹 스크래핑 시리즈의 연속입니다. 여기에서 beautifulsoup , requests , lxml 라이브러리를 사용하여 Python을 사용하여 Google 비디오 결과를 스크랩할 수 있는 방법의 예를 볼 수 있습니다. 대체 API 솔루션이 표시됩니다.

수입품




import requests, lxml
from bs4 import BeautifulSoup
from serpapi import GoogleSearch


스크랩 할 것





프로세스



필요한 모든 데이터가 있는 컨테이너 선택


표시된 링크 선택


제목, 스니펫, 업로드한 사람, 업로드한 날짜 선택

암호



import requests, lxml
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"
}

params = {
    "q": "somebody toucha my spaghet",
    "tbm": "vid",
    "hl": "en" # get english results
}

response = requests.get("https://www.google.com/search", headers=headers, params=params)
soup = BeautifulSoup(response.text, 'lxml')

for results in soup.select('.tF2Cxc'):
    title = results.select_one('.DKV0Md').text
    link = results.a['href']
    displayed_link = results.select_one('.TbwUpd.NJjxre').text
    snippet = results.select_one('.aCOpRe span').text
    uploaded_by = results.select_one('.uo4vr span').text.split(' ')[2]
    upload_date = results.select_one('.fG8Fp.uo4vr').text.split(' · ')[0]
    print(f'{title}\n{link}\n{displayed_link}\n{snippet}\n{upload_date}\n{uploaded_by}\n')

--------------
'''
SOMEBODY TOUCHA MY SPAGHET - YouTube
https://www.youtube.com/watch?v=cE1FrqheQNI
www.youtube.com › watch
SOMEBODY TOUCHA MY SPAGHET. 10,319,777 views10M views. Dec 26, 2017. 166K. 1.8K. Share. Save ...
Dec 27, 2017
Darkcode
...
'''

위의 프로그램은 이러한 레이아웃을 긁지 않습니다.


Google 비디오 결과 API 사용



SerpApi는 5,000회 검색의 무료 평가판이 포함된 유료 API이며 Google 검색에 나타날 수 있는 추가 레이아웃을 스크랩합니다. 위의 프로그램은 이 특정 레이아웃만 긁어내고 SerpApi는 그렇지 않습니다.

from serpapi import GoogleSearch
import json # used for pretty output

params = {
  "api_key": "YOUR_API_KEY",
  "engine": "google",
  "q": "somebody toucha my spaghet",
  "tbm": "vid",
  "hl": "en",
}

search = GoogleSearch(params)
results = search.get_dict()

[print(json.dumps(result, indent=2, ensure_ascii=False)) for result in results['video_results']]

------------
'''
{
  "position": 1,
  "title": "SOMEBODY TOUCHA MY SPAGHET - YouTube",
  "link": "https://www.youtube.com/watch?v=cE1FrqheQNI",
  "displayed_link": "www.youtube.com › watch",
  "thumbnail": "https://serpapi.com/searches/60e1662d654a8c2684edee33/images/7554019104074b78f0fdde1c47929f2b933bcacc846404a15245dd2ae68bffe1.jpeg",
  "snippet": "SOMEBODY TOUCHA MY SPAGHET. 10,319,777 views10M views. Dec 26, 2017. 166K. 1.8K. Share. Save ...",
  "rich_snippet": {
      "extensions": [
        "Dec 26, 2017",
        "Uploaded by Darkcode"
      ]
   }
}
...
'''


연결



Code in the online IDEGoogle Video Results API

아웃트로



질문이 있거나 제대로 작동하지 않는 것이 있거나 다른 것을 작성하고 싶은 경우 댓글 섹션이나 Twitter(으)로 자유롭게 의견을 남겨주세요.

당신 것,
Dimitry 및 나머지 SerpApi 팀.

좋은 웹페이지 즐겨찾기