
추천 무료 학습: python 비디오 튜토리얼
세 가지 데이터 수집 방법
- 정규 표현식(재 라이브러리)
- 아름답다 수프(b s4)
- lxml
*이전에 구축된 다운로드 웹 페이지 기능을 사용하여 대상 웹 페이지의 html을 얻으려면 https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/를 예로 들어 보겠습니다.

1 2 3 | from get_html import download
url = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/' page_content = download(url)
|
로그인 후 복사
* 이 웹페이지에서 국가 이름과 프로필을 크롤링해야 한다고 가정하면, 데이터 크롤링을 달성하기 위해 이 세 가지 데이터 크롤링 방법을 차례로 사용합니다.
1. 정규식
1 2 3 | 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)
1 2 3 4 | 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
1 2 3 | 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!