python 파충류 기반 의 간단 한 웹 페이지 수집 기
4871 단어 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 웹 수집 기 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.