>백엔드 개발 >파이썬 튜토리얼 >Python을 사용하여 산문 웹사이트의 기사를 크롤링합니다.

Python을 사용하여 산문 웹사이트의 기사를 크롤링합니다.

PHP中文网
PHP中文网원래의
2017-07-03 17:30:291345검색

image.png

Python 2.7 구성

으아악

설치 pip를 사용하여 sudo pip install bs4를 설치하세요

sudo pip 설치 요청

bs4는 웹페이지를 크롤링하기 때문에 사용법을 간략히 설명하고 find와 find_all을 소개하겠습니다

find와 find_all의 차이점은 반환되는 내용이 다르다는 것입니다. Find는 처음으로 일치하는 태그와 태그의 내용을 반환합니다

find_all은 목록을 반환합니다

예를 들어, find와 find_all의 차이를 테스트하기 위해 test.html을 작성합니다. 내용은 다음과 같습니다:

으아악

으아악

test.py의 코드는 다음과 같습니다.

으아악

으아악

실행 후 지정된 태그를 가져오면 둘 사이에 큰 차이가 없는 결과를 볼 수 있습니다. 태그 그룹을 가져오면 둘 사이의 차이가 표시됩니다


image.png

그래서 사용할 때 필요한 것에 주의를 기울여야 합니다. 그렇지 않으면 오류가 발생합니다.
다음 단계는 요청을 통해 웹페이지 정보를 얻는 것입니다. 왜 다른 사람들이 들었고 다른 것을 쓰는지 잘 모르겠습니다.
I get 메소드를 사용하여 prose.com에서 여러 카테고리의 두 번째 수준 웹페이지 가져오기를 통해 웹페이지에 직접 액세스한 다음 그룹 테스트를 통과하여 모든 웹페이지를 크롤링합니다

으아악

으아악

이 부분의 코드에서는 200이 아닌 res.status_code를 처리하지 않았습니다. 그 결과 오류가 표시되지 않고 크롤링된 콘텐츠가 손실되는 문제가 있습니다. 그러다가 Sanwen.net 웹페이지를 분석해 보니 www.sanwen.net/rizhi/&p=1
p의 최대값은 10입니다. 지난번에 디스크를 크롤링했을 때는 였네요. 100페이지는 나중에 분석하겠습니다. 그런 다음 get 메소드를 통해 각 페이지의 내용을 가져옵니다.
각 페이지의 내용을 얻은 후 작성자와 제목을 분석하면 다음과 같습니다

으아악

으아악

제목을 구할 때 부정행위가 있었습니다 여러분, 왜 산문을 작성할 때 제목에 슬래시를 추가하나요? 이 문제로 인해 나중에 작성할 때 파일 이름이 잘못되었습니다. 정규식을 입력하면 제가 대신 바꿔드리겠습니다.
마지막 단계는 각 페이지의 분석을 통해 기사 주소를 얻은 다음, 원래는 웹 페이지 주소를 변경하여 하나씩 내용을 가져오고 싶었습니다. 문제.

으아악

으아악

마지막 단계는 파일을 작성하고 저장하면 됩니다

으아악

Prose.com에서 산문을 얻으려면 세 가지 기능을 사용하는데 문제는 일부 산문이 왜 손실되는지 알 수 없다는 것입니다. 400개 정도의 기사만 얻을 수 있습니다. Prose.com이지만 실제로는 동일합니다. 누군가가 이 문제를 해결하도록 도와줄 수 있기를 바랍니다. 물론 웹 페이지에 접근할 수 없게 만들어야 할 것 같아요. 기숙사의 네트워크가 끊어진 것과 관련이 있는 것 같아요

으아악

렌더링을 거의 잊어버렸어요

코드가 지저분해도 멈추지 않아요

위 내용은 Python을 사용하여 산문 웹사이트의 기사를 크롤링합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.