python 파충류 및 urllib 라 이브 러 리 초기 사용
인터넷 파충류
urllib 와 urllib 2 라 이브 러 리 는 Python 기어 오 르 기 를 배 우 는 가장 기본 적 인 라 이브 러 리 입 니 다. 이 라 이브 러 리 를 이용 하면 우 리 는 ⽹ \11994; 의 내용 을 얻 을 수 있 고 내용 의 정규 표현 식 을 추출 분석 하여 우리 가 원 하 는 결 과 를 얻 을 수 있 습 니 다.이것 은 공부 하 는 과정 에서 나 는 12068 가구 와 나 눌 것 이다.
2. urllib 라 이브 러 리 초기 사용
2.1 간단하게 홈 페이지 를 찾 습 니 다.
웹 페이지 를 찾 으 려 면 요청 대상 을 만 들 고 되 돌아 오 는 내용 과 데 이 터 를 세척 하 는 세 가지 절차 가 필요 합 니 다.
요청 한 생 성 은 urllib 라 이브 러 리 의 request. Request 클래스 를 통 해 이 루어 집 니 다.예컨대
from urllib import request
headers = {
"User-Agent": " User-Agent",
} # header “ ”-“ ”
#
req = urllib.request.Request("http://www.51job.com/", headers=headers) # , headers
웹 사 이 트 는 파충류 가 방문 하 는 브 라 우 저 를 검증 하기 위해 headers 인 자 를 추가 하여 검증 을 통과 해 야 합 니 다.
되 돌아 오 는 내용 을 가 져 오 려 면 request. urlopen () 방법 이 필요 합 니 다.예컨대
#
res = request.urlopen(req)
print(res.info()) #
print(res.read()) #
이 때 출력 된 웹 페이지 소스 코드 는 바 이 너 리 입 니 다. decode () 방법 으로 변환 해 야 합 니 다.예컨대
from urllib import request
url = "http://www.so.com"
headers = {
"User-Agent": " User-Agent",
}
req = request.Request(url, headers=headers)
res = request.urlopen(req)
print(res.read().decode('utf-8')) # utf-8
2.2. 사진 다운로드
우 리 는 request. url retrieve () 방법 을 통 해 현재 파일 에 그림 을 다운로드 할 수 있 습 니 다.예컨대
from urllib import request
request.urlretrieve("https://dss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3830587581,3607655220&fm=26&gp=0.jpg", 'beauty.jpg') # ,
2.3. POST 요청
요청 대상 을 만 들 때 data 인 자 를 추가 하지 않 으 면 기본적으로 GET 방법 으로 요청 합 니 다.data 인 자 를 추가 하면 POST 방법 으로 요청 합 니 다.
data 매개 변 수 는 url 형식 이 어야 하기 때문에 urllib 라 이브 러 리 의 parse. urlencode () 방법 을 통 해 data 매개 변 수 를 가 진 사전 을 url 형식 으로 변환 할 수 있 습 니 다.동시에 parse. parseqs () 방법 은 url 형식의 문자열 을 사전 으로 변환 합 니 다.예컨대
from urllib import parse # parse
params = {'name': 'YRC', 'age': 18}
result = parse.urlencode(params) # url
print(result)
reverse = parse.parse_qs(result) # url
print(reverse)
실행 결 과 는 다음 과 같다.
name=YRC&age=18
{'name': ['YRC'], 'age': ['18']}
다음은 왕 이 운 음악 을 오 르 는 댓 글 중 한 페이지 를 보 여 드 리 겠 습 니 다.
from urllib import request, parse
import json
url = "https://music.163.com/weapi/v1/resource/comments/A_PL_0_5090312130?csrf_token="
data = {
'params': '/i59N3sJGoihSvD9S4Ytmaf6Z977fVgwg25dY59FGUQTWhOgsLiWQHv6aYv9rMPngU/5g55GoFQzqoN74QQAvafh3YnK5tDdpKiqDI60IXvW+oO3O1zktOS5iLO6/M94TY0Lmaqryo9OzfRL3+iQ21Yw0ootVy/AhFGJxqX31p7m4AIgxwp05nr4cn0hIwdW',
'encSecKey': '4be298acedfc2d4b2faa632d37eb597b69934711f75d656794078083865d5a7479d8dd783f485a86d81cadb3790a9a53ca877a72b15f2518051e051649790242ff545e1558012b25e62efd1fba9b6362102230c8bb7b4ebf70359a90d3b408155296c2beea8d6ab61047b67dffb913a3278f956d2f439fd57f33ad7ab86d1a6b',
}
headers = {
"User-Agent": " User-Agent",
}
data = parse.urlencode(data).encode()
#
req = request.Request(url, headers=headers, data=data) # data POST
response = request.urlopen(req)
content = response.read().decode('utf-8') # json
#
hotcomments = json.loads(content)
hotcomments_list = hotcomments.get('hotComments')
for hotcomment in hotcomments_list:
user_id = hotcomment['user']['userId']
nickname = hotcomment['user']['nickname']
content = hotcomment['content']
print(user_id, nickname, content)
위의 url 매개 변수 와 data 매개 변 수 는 fiddler 4 도 구 를 통 해 얻 을 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.