python 파충류 기반 의 간단 한 웹 페이지 수집 기

간이 웹 수집 기
앞에서 우 리 는 브 라 우 저 페이지 를 간단하게 기어 오 르 는 파충 류 를 배 웠 다.그러나 사실 우리 의 수 요 는 당연히 검색 개의 첫 페이지 나 B 역 의 첫 페이지 를 오 르 는 것 이 이렇게 간단 한 것 이 아니다.아무리 도움 이 되 지 않 더 라 도 우 리 는 특정한 정보 가 있 는 페이지 를 오 를 수 있 기 를 바란다.
기어 오 르 는 것 을 배 운 후에 너 는 나 처럼 검색 페이지 를 기어 오 르 려 고 했 는 지 모르겠다.예 를 들 어 바 이 두 등 이다.이런 페이지
在这里插入图片描述
나의 빨 간 필획 부분 을 주의해 라.이것 은 내 가 연 홈 페이지 이다.지금 나 는 이 페이지 의 데 이 터 를 기어 올 라 가 우리 가 앞에서 배 운 코드 에 따라 이렇게 써 야 한다.

import requests

if __name__ == "__main__":
    #   URL
    url = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=2&tn=93923645_hao_pg&wd=%E5%A5%A5%E7%89%B9%E6%9B%BC&rsv_spt=1&oq=%25E7%2588%25AC%25E5%258F%2596%25E7%2599%25BE%25E5%25BA%25A6%25E9%25A6%2596%25E9%25A1%25B5&rsv_pq=b233dcfd0002d2d8&rsv_t=ccdbEuqbJfqtjnkFvevj%2BfxQ0Sj2UP88ixXHTNUNsmTa9yWEWTUEgxTta9r%2Fj3mXxDs%2BT1SU&rqlang=cn&rsv_dl=tb&rsv_enter=1&rsv_sug3=8&rsv_sug1=5&rsv_sug7=100&rsv_sug2=0&rsv_btype=t&inputT=1424&rsv_sug4=1424"

    #     
    response = requests.get(url)

    #     
    page_text = response.text

    #   
    with open("./   .html", "w", encoding = "utf-8") as fp:
        fp.write(page_text)

    print("    !!!")
그러나 우리 가 저장 한 파일 을 열 어 보 니 우리 가 생각 하 는 것 과 결과 가 다 르 더 라 고요.
在这里插入图片描述
우 리 는 우리 가 저장 한 파일 이 빈 페이지 라 는 것 을 발견 했다.이것 은 왜 일 까?
사실 우 리 는 인터넷 주 소 를 검색 개 로 바 꿀 수 있 거나 좀 더 직관 적 으로 바 꾸 었 다.
在这里插入图片描述
우 리 는 그 중 에'인터넷 에 이상 한 방문 이 있다'는 말 이 있 는 것 을 발견 했다.그렇다면 이 말 은 무슨 뜻 일 까?
이 말 은 개 수색 이나 바 이 두 가 요청 을 보 내 는 것 이 인공 조작 이 아니 라 파충류 프로그램 이라는 것 을 알 아 차 렸 다 는 뜻 이다.
그렇다면 그 원 리 는 무엇 일 까?
쉽게 말 하면 프로그램 접근 과 우리 가 브 라 우 저 를 사용 하여 방문 하 는 것 은 차이 가 있 습 니 다.요청 한 서버 는 모두 user-agent 로 방문 자의 신분 을 판단 하고 브 라 우 저 라면 요청 을 받 아들 이 고 그렇지 않 으 면 거절 합 니 다.이것 이 바로 매우 흔히 볼 수 있 는 반 기어 오 르 기 메커니즘 이다.
그럼 우리 가 어 쩔 수 없 는 거 아니 야?
뿐만 아니 라,이른바 마 가 한 자 높 고,도가 한 장 높다.user-agent 를 식별 하려 면 파충류 가 user-agent 를 모 의 하도록 하 자.
python 에서 입력 데이터 나 user-agent 를 모 의 합 니 다.저 희 는 보통 사전 을 사용 합 니 다.
이렇게 쓰 세 요.

header = {
	"user-agent": "" # user-agent           
	}
그럼 user-agent 의 값 은 어떻게 얻 었 나 요?
1.임의의 웹 페이지 를 열 고 오른쪽 단 추 를 눌 러"검사"를 선택한다.

2.'네트워크'(구 글 브 라 우 저)를 선택한다(중국어 라면'네트워크'를 선택한다)
在这里插入图片描述
3.점 이 비어 있 는 것 을 발견 하면 홈 페이지 를 새로 고침 합 니 다.
在这里插入图片描述
새로 고침 후 다음 과 같 습 니 다:
在这里插入图片描述
그리고 랜 덤 으로 빨 간 펜 으로 동 그 라 미 를 친 하 나 를 선택 하면 우 리 는 이런 것 을 볼 수 있 습 니 다.그리고 그 안에서'user-agent'를 찾 아 그 값 을 복사 하면 됩 니 다.
在这里插入图片描述
"user-agent"가 있 습 니 다.우 리 는 웹 페이지 를 오 르 는 코드 를 다시 쓰 면 됩 니 다.

import requests

if __name__ == "__main__":
    #   URL
    url = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=2&tn=93923645_hao_pg&wd=%E5%A5%A5%E7%89%B9%E6%9B%BC&rsv_spt=1&oq=%25E7%2588%25AC%25E5%258F%2596%25E7%2599%25BE%25E5%25BA%25A6%25E9%25A6%2596%25E9%25A1%25B5&rsv_pq=b233dcfd0002d2d8&rsv_t=ccdbEuqbJfqtjnkFvevj%2BfxQ0Sj2UP88ixXHTNUNsmTa9yWEWTUEgxTta9r%2Fj3mXxDs%2BT1SU&rqlang=cn&rsv_dl=tb&rsv_enter=1&rsv_sug3=8&rsv_sug1=5&rsv_sug7=100&rsv_sug2=0&rsv_btype=t&inputT=1424&rsv_sug4=1424"

    #    “user-agent”,  UA  
    header = {
        "user-agent" : "" #     user-agent   
        }
    #     
    response = requests.get(url, headers = header)

    #     
    page_text = response.text

    #   
    with open("./   (UA  ).html", "w", encoding = "utf-8") as fp:
        fp.write(page_text)

    print("    !!!")
다시 실행 하고 파일 열기
在这里插入图片描述
이번에 성공 한 것 은 우리 의 파충류 프로그램 이 서버 를 완벽 하 게 속 였 다 는 것 을 설명 한다.
python 파충류 기반 의 간단 한 웹 수집 기 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 python 웹 수집 기 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기