python 은 세 가지 무 작위 요청 헤더 방식 을 실현 합 니 다.
6491 단어 python무 작위 요청 헤더
user-agent
라 는 인 자 를 설정 해 보 셨 을 거 라 고 믿 죠?요청 할 때 이 인 자 를 넣 으 면 어느 정도 브 라 우 저 로 위장 할 수 있 고 서버 에 의 해 직접 식별 되 지 않 습 니 다spider.demo.code
.제 가 알 기 로 는 많은 독자 들 이 매번network
에서 직접 복사user-agent
한 다음 에 그 를 코드 에 붙 여 넣 었 습 니 다.이렇게 얻 은user-agent
은 틀 리 지 않 고 사용 할 수 있 습 니 다.그러나 만약 에 사이트 의 역 기어 오 르 기 조치 가 강하 면 고정된 요청 헤드 를 사용 하 는 데 문제 가 있 을 수 있 기 때문에 우 리 는 랜 덤 요청 헤드 를 설정 해 야 한다.여기 서 나 는 내 가 일반적으로 사용 하 는 세 가지 랜 덤 요청 헤드 방식 을 공유 했다.아이디어 소개:
사실은 랜 덤 효 과 를 얻 으 려 면 어느 정도 에 우 리 는 랜 덤 함수 라 이브 러 리
random
라 는 것 을 이용 하여 실현 할 수 있 고random.choice([user-agent])
랜 덤 pick 배열 중 하 나 를 호출 하면 된다.이것 은 나의 방식 이다.python 은 제3자 가방 을 많이 가 진 언어 로 서 무 작위 요청 헤드 를 생 성 할 수 있 는 가방 이 있 습 니 다.맞습니다.바로
fake-useragent
이 제3자 라 이브 러 리 입 니 다.잠시 후에 이 함수 라 이브 러 리 의 간단 한 사용 을 소개 하 겠 습 니 다.다른 사람 이 제3자 라 이브 러 리 를 쓸 수 있 으 니 자 연 스 럽 게 자신 도 이러한 기능 을 실현 할 수 있 습 니 다.대부분 상황 에서 저 는 많은 코드 가 제 가 실현 한
GetUserAgentCS
류 를 직접 호출 하여 무 작위 요청 헤드 를 얻 을 수 있 습 니 다.함수 라 이브 러 리 를 직접 써 야 편안 합 니 다.이것 은 저도 함수 라 이브 러 리 를 어떻게 만 드 는 지 소개 하 겠 습 니 다.제3자 라 이브 러 리 작성 하기:
코드 를 쓰 는 프레임 워 크 가 어떤 지,과정 을 향 한 것 인지,대상 을 향 한 것 인지 모 르 겠 습 니 다.일회 성 코드 에 대해 서 는 간단 한 인 코딩 을 하면 됩 니 다.이 코드 는 여러 곳 에서 사용 할 수 있 고 중복 사용 할 수 있다 고 생각 되면 클래스 방식 으로 이 코드 를 작성 할 수 있 습 니 다.다른 파일 에 서 는 이 파일 을 직접 호출 하여 쓴 class 클래스 의 여러 가지 방법 을 직접 호출 할 수 있 습 니 다.그리고 저도 이렇게 실 현 된 랜 덤 요청 헤더 의 제3자 라 이브 러 리 입 니 다.다음 과 같 습 니 다.
import random
import csv
class GetUserAgentCS(object):
"""
,
"""
def __init__(self):
with open('D://pyth//scrapy //setting//useragent.csv', 'r') as fr:
fr_csv = csv.reader(fr)
self.user_agent = [str(i[1]) for i in fr_csv]
def get_user(self):
return random.choice(self.user_agent)
useragent 파일 은 다음 과 같 습 니 다.
1,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36,Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36"
2,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36,Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.17 Safari/537.36"
3,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36,Mozilla/5.0 (X11; NetBSD) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36"
4,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36,Mozilla/5.0 (X11; CrOS i686 3912.101.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36"
5,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36,Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36"
-------
------- # too much
100...
코드 는 간단 합 니 다.로 컬 csv 파일 을 읽 고 random 이 하나씩 나 가면 됩 니 다.그럼 지금 누가 저 에 게 이 파일 을 어떻게 왔 냐 고 물 었 습 니 다.간단 합 니 다.자 연 스 럽 게 방법 이 있 습 니 다.이 따 다음 모듈 에서 말씀 드 리 겠 습 니 다.여기 서 우 리 는 하나의GetUserAgentCS
류 만 작성 하면 됩 니 다.코드 는 제 위 에 있 는 것 을 직접 베 낄 수 있 습 니 다.그리고get_useragent.py
로 저장 하면 됩 니 다.그리고 이 가방 파일 을 파충류 폴 더 에 두 고 이렇게 호출 하 십시오.
from get_useragent import GetUserAgentCS
headers = {}
ua = GetUserAgentCS().get_user()
headers['user-agent'] = ua
return headers
이 호출GetUserAgentCS
에 성공 하지 못 하거나 아래 에 빨간색 물결 선 이 나타 날 수 있 습 니 다.현재 작업 환경 을 설정 하지 않 았 다 면 이렇게 설정 해 야 합 니 다(파충류 폴 더 설정).클릭
Sources Root
하 시 면 됩 니 다!제3자 라 이브 러 리 fake-useragent 사용:
이것 은 다른 사람 이 이미 작성 한 제3자 라 이브 러 리 입 니 다.설치 한 다음 에 API 를 호출 하면 됩 니 다.여러 가지 요청 헤드 를 얻 을 수 있 습 니 다.유일한 단점 은 요청 이 불안정 하고 가끔 네트워크 파동 이 성공 하지 못 할 수도 있 습 니 다.Scrapy 에 사용 하면 편안 하지 않 습 니 다.그래서 저 는 이 가방 을 바탕 으로 제 가방 과 같이 작 성 했 습 니 다.요청 헤더 의 데이터 가 어떻게 생 겼 는 지 에 대해 서 는 이 가방 이 정상적으로 실 행 될 때 계속 변경
user-agent
한 다음 에 계속 요청http://httpbin.org/user-agent
한 다음 에 데 이 터 를 계속 저장 하고 로 컬 파일 에 기록 하면 됩 니 다.우리 이 가방 의 사용 방식 을 이야기 합 시다!
설치 하 다.
pip install fake-useragent
설치 성공 여 부 를 pip list 로 확인 할 수 있 습 니 다.사용 방식
from fake_useragent import UserAgent
headers= {'User-Agent':str(UserAgent().random)}
r = requests.get(url, headers=headers)
이 럴 때 는 그냥 랜 덤 으로 하면 돼 요.간단 해 요.
메모리 배열 읽 기:
이 럴 때 부터 내 가 부탁 머리 를 바 꿨 을 뿐 인 데 이렇게 귀 찮 게 해 야 하나?물론 간단 한 방법 이 있 습 니 다.다만 매번 복사 해서 사용 해 야 합 니 다.방법 이 별로 없습니다.구체 적 으로 다음 과 같 습 니 다.
ua = ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36,Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36"
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36,Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.17 Safari/537.36"
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36,Mozilla/5.0 (X11; NetBSD) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36"]
미리 요청 헤드 를 배열 에 넣 고 사용 하면 됩 니 다.
import random
ua = [.....]
r = requests.get(url, headers={"user-agent":random.choice(ua)})
이상 은 제 가 요청 헤드 에 관 한 몇 가지 설정 방식 입 니 다.보충 할 것 이 있 으 면 댓 글 을 남 겨 주세요.세 가지 방식 으로 랜 덤 요청 헤드 를 설정 하 는 것 을 알려 드 립 니 다.파충류 설정 요청 헤드(user-agent)는 필연 적 입 니 다.랜 덤 요청 헤드 를 만 드 는 방법 도 우리 파충류 가 반드시 파악 해 야 할 것 입 니 다.이 글 을 읽 으 면 쉽게 파악 할 수 있 습 니 다!
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에 따라 라이센스가 부여됩니다.