추천 무료 학습: python 비디오 튜토리얼
세 가지 데이터 수집 방법
*이전에 구축된 다운로드 웹 페이지 기능을 사용하여 대상 웹 페이지의 html을 얻으려면 https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/를 예로 들어 보겠습니다.
from get_html import download url = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'page_content = download(url)
* 이 웹페이지에서 국가 이름과 프로필을 크롤링해야 한다고 가정하면, 데이터 크롤링을 달성하기 위해 이 세 가지 데이터 크롤링 방법을 차례로 사용합니다.
1. 정규식
from get_html import downloadimport re url = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'page_content = download(url)country = re.findall('class="h2dabiaoti">(.*?)', page_content) #注意返回的是listsurvey_data = re.findall('<tr><td>(.*?)</td></tr>', page_content)survey_info_list = re.findall('<p> (.*?)</p>', survey_data[0])survey_info = ''.join(survey_info_list)print(country[0],survey_info)
2.BeautifulSoup (bs4)
from get_html import downloadfrom bs4 import BeautifulSoup url = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'html = download(url)#创建 beautifulsoup 对象soup = BeautifulSoup(html,"html.parser")#搜索country = soup.find(attrs={'class':'h2dabiaoti'}).text survey_info = soup.find(attrs={'id':'wzneirong'}).textprint(country,survey_info)
3.lxml
from get_html import downloadfrom lxml import etree #解析树url = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'page_content = download(url)selector = etree.HTML(page_content)#可进行xpath解析country_select = selector.xpath('//*[@id="main_content"]/h2') #返回列表for country in country_select: print(country.text)survey_select = selector.xpath('//*[@id="wzneirong"]/p')for survey_content in survey_select: print(survey_content.text,end='')
작업 결과:
마지막으로 "Writing a Web Crawler in Python"에서 세 가지 방법의 성능 비교를 인용해 보겠습니다. 다음 그림:
참고용으로만 사용하세요.
관련 무료 학습 권장 사항: python 튜토리얼(동영상)
위 내용은 Python 데이터 캡처의 세 가지 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!