PHPScraper랑 Python3이 예뻐요.
나는 그것을 GitHub에 놓고 VuePress 사이트를 기본 문서로 추가하여 잠시 보존했다.내가 또 깎아야 할 때까지.나의 새 프로젝트에 대해 나는 여러 가지 속성을 가진 링크를 추출해야 한다. 예를 들어 'target','rel '등이다. 이것은 빠른 조합의 링크 PHPScraper 로부터 시작하여, 결과적으로 나의 scraper가 파이톤 hacks 등 더 높은 라이브러리와 맞설 수 있는지 확인할 수 있는 기회이다.제한된 Python 지식과 Beautiful Soup, PHP Scraper를 사용하여 필요한 기능을 구축하기로 결정했습니다.
BeautifulSoup
요구 사항
이 두 항목 모두 이러한 요구를 만족시켜야 한다.
Python 3 및 BeautifulSoup 4를 사용하여 링크 삭제
처음 언급한 바와 같이, 나의 파이톤 지식은 한계가 있기 때문에 구글은 어쩔 수 없이 이곳과 그곳에서 나를 도와야 한다.파이톤2와 파이톤3 사이의 각종 패키지 관리자와 강력한 차이로 인해 예상보다 작업이 많아졌다.원본 코드는 더 최적화될 수 있지만 수요를 충족시켰다.한마디로 소스 코드는 여전히 간단하며 길지 않다.
from bs4 import BeautifulSoup
import sys
import urllib.request
import json
# Prep the request
url = sys.argv[1]
req = urllib.request.Request(
url,
data=None,
headers={
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0'
}
)
# Get the site
f = urllib.request.urlopen(req)
content = f.read().decode('utf-8')
# Parse the content
soup = BeautifulSoup(content, "html.parser")
data = []
for link in soup.find_all('a'):
data.append({
'href': link.get('href'),
'title': link.get('title'),
'rel': link.get('rel'),
'target': link.get('target'),
'text': link.getText(),
})
with open('./links.json', 'w') as outfile:
json.dump(data, outfile)
앞에서 말한 바와 같이 이것은 결코 이상적이지 않을 수도 있다.PHPScraper 링크 추출기 구현
위에서 설명한 바와 같이 PHP 버전의 경우, 나는 나의 버전을 사용했다.우선, 나는 새로운composer 프로젝트를 초기화한 다음에 'composer require spekulatius/phpscraper' 를 실행했다.소스 코드는 간단합니다.
<?php
require 'vendor/autoload.php';
// Instantiate the library
$web = new \spekulatius\phpscraper();
// Navigate to the test page.
$web->go($argv[1]);
// Extract the links
$links = $web->linksWithDetails;
// Write the result
file_put_contents('./links.json', json_encode($links));
네 개의 기능 행 코드가 주석되어 있기 때문에, 나는 여기에 너무 많은 단어가 필요하지 않다고 생각한다.PHPScraper library
성능 비교: BeautifulSoup 및 PHPScraper
성능이 비교적 자연스럽고 어렵다.이것은 많은 요소에 달려 있는데, 그 중 상당 부분은 내가 통제할 수 없는 것이다.부작용을 줄이기 위해 이 테스트 설정을 선택했습니다.
비록 이것은 가장 좋은 테스트 설정은 아니지만, 성능에 대한 느낌을 얻기 위해 이렇게 해야 한다.
다음과 같은 방법으로 테스트 설정을 개선할 수 있습니다:.
URL을 읽을 때의 시간;python3 python3 미화 링크 추출기/링크 추출기를 만듭니다.py“$url”;완료
URL을 읽을 때의 시간;php phpscraper 링크 추출기/링크 추출기를 만듭니다.php“$url”;완료
성능 테스트 결과
위에서 말한 바와 같이 이 테스트는 대표적이지 않고 기초 지식이 부족하다.나는 여전히 성능 차이를 나타내기 위해 몇 가지 숫자를 넣었다.
BeautifulSoup의 Python 스크립트를 사용하여 url 목록을 처리하는 데 다음과 같은 시간이 걸렸습니다.
PHPScraper를 사용한 PHP 스크립트는 다음과 같은 기능을 제공합니다.
기타 실험 및 테스트:
Reference
이 문제에 관하여(PHPScraper랑 Python3이 예뻐요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/spekulatius1984/phpscraper-and-python3-beautifulsoup-in-comparison-3aj9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)