python 학습(2)파충류-사이트 소설 을 기어 올 라 txt 파일 로 저장(1)
6366 단어 python학습 노트python 파충류 입문
필요 모듈
import requests #
목표 소설 사이트:http://m.50zw.la
페이지 가 져 오기
r = requests.get('http://m.50zw.la',params=re_header)
requests 의 고급 기능
이곳 의 reheader 는 HTTP 요청 헤더 입 니 다.브 라 우 저 방문 을 모방 하여 사이트 에 발견 되 지 않도록 하 는 방법 은 다음 과 같 습 니 다.chrome 으로 소설 사이트 2 를 열 고 F12 를 누 르 면 개발 자 모드 나 마우스 우 클릭->개발 자 모드 3 에 들 어 가 는 지 확인 하고 network 4 를 누 르 십시오.그림:
주:request-header 에 있 는 것 은 전부 복사 할 필요 가 없습니다.일부분 만 있 으 면 됩 니 다.구체 적 으로 자신 이 해 보 세 요.
그리고 저희 가 얻 은 웹 페이지 는 r 에 저 장 됩 니 다.
여기에 인 코딩 도 설정 해 야 합 니 다.requests 는 기본적으로 utf-8 입 니 다.저희 목표 사이트 의 인 코딩 은 gbk입 니 다.
인쇄 된 것 은 사이트 의 소스 코드 입 니 다.우 리 는 소설 장절 내용 을 얻 으 려 면 문자 만 얻 으 면 됩 니 다.그래서 우 리 는 사이트 소스 코드 에 있 는 코드 부분 을 모두 제거 해 야 한다.
2.원본 코드 의 코드 부분 제거
필요 한 모듈:
from bs4 import BeautifulSoup
극단 적 인 대학|BeautifulSoup 의 용법
이 모듈 은 웹 페이지 의 태그 에 따라 지정 한 내용 을 가 져 올 수 있 습 니 다.
select 방법 을 통 해 html 페이지 의 title 탭 을 선택 하면 되 돌아 오 는 것 은 목록 입 니 다.그림:
탭 에 있 는 텍스트 를 text 속성 으로 가 져 옵 니 다:
이런 것들 을 파악 하고 나 서 장절 의 내용 을 얻 는 것 은 매우 간단 하 다.
3.장절 내용 가 져 오기
우 리 는 먼저 한 장의 페이지 를 마음대로 열 고 F12 를 누 르 면 개발 자 모드 에 들 어 갑 니 다.그림:
왼쪽 위 에 있 는 마우스 아이콘 을 먼저 클릭 하고 선택 할 내용 을 클릭 하면 해당 하 는 탭 이 원본 코드 에서 강조 표 시 됩 니 다.
여기 서 우 리 는 장절 내용 이 id 가 nr1 인 탭 아래(select 방법 도 id 와 클래스 이름 에 따라 선택 할 수 있 음)를 볼 수 있다.그림:
장절 내용 을 가 져 온 후 파일 쓰기 에 편리 하도록 변수 에 저장 합 니 다
4:파일 쓰기
필요 한 모듈:
import os
os 모듈 은 python 에서 파일 읽 기와 쓰기 에 사 용 됩 니 다.상세 한 것 은 python 3|초보 튜 토리 얼 을 알 아 볼 수 있 습 니 다.여 기 는 open()함수 만 사용 하면 됩 니 다.
open(' , ',' , wb')
#wb : ,
그림:
여기에 괄호 를 넣 는 것 이 좋 습 니 다.그렇지 않 으 면 예상 치 못 한 오류 가 발생 할 수 있 습 니 다
생 성 된 파일 은 현재 스 크 립 트 가 있 는 디 렉 터 리 에 있 습 니 다.여기 서 형식 을 잘못 걸 었 습 니 다.사실은 txt 형식 이 어야 합 니 다.
전체 코드 는 다음 과 같 습 니 다:
import requests
import os
from bs4 import BeautifulSoup
url = 'http://m.50zw.la/book_1/5.html'
re_header = {
'Referer':'http://m.50zw.la/chapters_1/',
'Upgrade-Insecure-Requests':'1',
'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Mobile Safari/537.36'
}
#
r = requests.get(url,params=re_header)
#
r.encoding = 'gbk'
# BeautifulSoup
soup = BeautifulSoup(r.text,"html.parser")
#
chapter_content = soup.select('#nr1')[0].text
# /
fo = open('1.txt','wb')
fo.write((chapter_content).encode('utf-8'))
print(chapter_content)
#
fo.close()
print(' ')
참고:파 이 썬 파충류 시리즈:소설 을 타고 txt 파일 쓰기
다음 편:전체 소설의 추출|python 학습(2)파충류-웹 사이트 소설 을 추출 하여 txt 파일 로 저장(2)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.