Python은 강력한 프로그래밍 언어로서 인터넷에서 많은 양의 데이터를 보다 편리하게 얻을 수 있도록 도와줍니다. 그 중 크롤러 기술은 매우 대표적인 부분이다. 크롤러는 인터넷에서 다양한 데이터를 얻고 분석하여 우리에게 많은 양의 귀중한 정보를 제공할 수 있습니다. Python에서는 크롤러 기술도 널리 사용될 수 있습니다. Baidu Zhizhi는 수많은 지식 질문과 답변을 제공하는 웹사이트입니다. 이 글에서는 Baidu Zhizhi 크롤러를 Python으로 구현하는 방법을 소개합니다.
먼저 Baidu 웹사이트를 크롤링하는 방법을 이해해야 합니다. Python에서는 요청 라이브러리나 urllib 라이브러리의 urlopen 함수를 사용하여 웹 사이트의 소스 코드를 얻을 수 있습니다. 소스 코드를 얻은 후 BeautifulSoup 라이브러리를 사용하여 웹 페이지 문서를 구문 분석하여 필요한 정보를 쉽게 필터링할 수 있습니다. 여기서 크롤링해야 할 것은 각 질문과 해당 베스트 답변입니다. Baidu가 알고 있는 소스 코드를 살펴보면 각 우수 답변에는 고유한 classID가 있음을 알 수 있으며 이를 기반으로 해당 콘텐츠를 선택할 수 있습니다.
다음은 코드 구현 과정입니다.
import requests from bs4 import BeautifulSoup # 网页地址 url = "https://zhidao.baidu.com/question/2031956566959407839.html" # 发送请求 r = requests.get(url) # 解析网页 soup = BeautifulSoup(r.text, "html.parser") # 获取问题 question = soup.find("span", class_="ask-title").text print("问题: ", question) # 获取最佳答案 answer = soup.find("pre", class_="best-text mb-10").text print("最佳答案: ", answer)
다음으로 여러 질문과 답변을 크롤링해야 합니다. 질문 목록을 만들고 for 루프를 통해 각 질문과 답변을 크롤링한 다음 인쇄할 수 있습니다. Baidu에서는 각 질문 URL의 접미사가 다르기 때문에 문자열 형식을 통해 크롤링해야 하는 웹페이지 주소를 자동으로 생성해야 합니다.
다음은 구현 코드입니다.
import requests from bs4 import BeautifulSoup # 创建问题列表 questions = [ "2031956566959407839", "785436012916117832", "1265757662946113922", "455270192556513192", "842556478655981450" ] # 循环爬取问题和最佳答案 for q in questions: # 根据问题ID拼接URL url = f"https://zhidao.baidu.com/question/{q}.html" # 发送请求 r = requests.get(url) # 解析网页 soup = BeautifulSoup(r.text, "html.parser") # 获取问题 try: question = soup.find("span", class_="ask-title").text except: question = "" # 获取最佳答案 try: answer = soup.find("pre", class_="best-text mb-10").text except: answer = "" # 打印问题和答案 print("问题: ", question) print("最佳答案: ", answer) print("----------------------")
마지막으로 크롤링 결과를 파일에 저장합니다. Python의 내장 모듈 csv를 사용하여 각 질문과 답변을 csv 파일에 저장할 수 있습니다. 또한, 중국어 문자 깨짐 문제를 방지하기 위해 csv 파일의 헤더에 BOM(Byte Order Mark)을 추가할 수 있습니다.
다음은 구현 코드입니다.
import requests from bs4 import BeautifulSoup import csv import codecs # 创建问题列表 questions = [ "2031956566959407839", "785436012916117832", "1265757662946113922", "455270192556513192", "842556478655981450" ] # 创建文件 with open("questions.csv", "w", newline='', encoding='utf-8-sig') as file: writer = csv.writer(file) writer.writerow(['问题', '最佳答案']) # 循环爬取问题和最佳答案 for q in questions: # 根据问题ID拼接URL url = f"https://zhidao.baidu.com/question/{q}.html" # 发送请求 r = requests.get(url) # 解析网页 soup = BeautifulSoup(r.text, "html.parser") # 获取问题 try: question = soup.find("span", class_="ask-title").text except: question = "" # 获取最佳答案 try: answer = soup.find("pre", class_="best-text mb-10").text except: answer = "" # 保存到csv文件 writer.writerow([question, answer])
이 글에서는 Python을 사용하여 바이두 웹사이트를 크롤링하는 방법을 소개했습니다. 요청 및 urllib 라이브러리를 사용하여 요청을 보내는 방법, BeautifulSoup 라이브러리를 사용하여 웹 페이지를 구문 분석하는 방법, 크롤링된 결과를 csv 파일에 저장하는 방법을 배웠습니다. 이러한 방법을 통해 우리는 인터넷에서 쉽게 데이터를 얻고 분석할 수 있습니다. 크롤러 기술은 인터넷 시대의 빅데이터 분석에서 매우 중요한 역할을 합니다. Python 프로그래머로서 관련 지식을 배우고 익히는 것이 중요합니다.
위 내용은 Python의 실제 크롤러 전투: Baidu는 크롤러를 알고 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!