python 파충류 및 urllib 라 이브 러 리 초기 사용

11901 단어
1. 파충 류 를 처음 본다
인터넷 파충류
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 도 구 를 통 해 얻 을 수 있 습 니 다.

좋은 웹페이지 즐겨찾기