간단 한 python 파충류 프로그램
이것 은 간단 한 python 파충류 프로그램 으로 기술 학습 과 교류 에 만 사용 되 는데 주로 간단 한 실제 사례 를 통 해 인터넷 파충류 에 대한 기본 적 인 인식 을 가진다.
인터넷 파충류
쉽게 말 하면 인터넷 파충 류 는 사람 이 웹 사이트 에 방문 하 는 행 위 를 모 의하여 가치 있 는 데 이 터 를 얻 는 것 이다.바 이 두 백과
파충류 의 수 요 를 분석 하 다.
목 표를 확정 하 다
콩짜개 열기 가 Top 100 이내 인 영화 의 일부 정 보 를 얻 는 것 은 영화 의 명칭,콩짜개 평 점,감독,작가,주연,유형,제작 국가/지역,언어,상영 날짜,영화 의 길이,IMDb 링크 등 정 보 를 포함한다.
목 표를 분석 하 다
1.도 구 를 이용 하여 목표 웹 페이지 분석
우선,우 리 는 콩짜개 영 화·인기 영 화 를 열 면 모두 20 편의 영 화 를 발견 할 수 있 지만,페이지 소스 코드 를 볼 때 소스 코드 에서 이 영화 들 을 정보 로 찾 을 수 없다.왜 그 럴 까요?원래 콩잎 은 ajax 기술 을 통 해 영화 정 보 를 얻 고 데 이 터 를 페이지 에 동적 으로 불 러 옵 니 다.크롬 개발 자 도 구 를 이용 해 영화 정 보 를 얻 을 API 를 먼저 찾 아야 한다.
그리고 영화 상세 페이지 를 분석 합 니 다.
사고 분석.
구체 적 실현
개발 환경
python3.6
pycharm
주 의존 라 이브 러 리
urllib-기본 적 인 네트워크 관련 조작
lxml--xpath 문법 으로 HTML 페이지 해석
json--API 를 통 해 얻 은 JSON 데이터 조작
re--정규 조작
코드 구현
from urllib import request
from lxml import etree
import json
import re
import ssl
#
ssl._create_default_https_context = ssl._create_unverified_context
def get_headers():
"""
:return:
"""
headers = {
'User-Agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/65.0.3325.181 Safari/537.36"
}
return headers
def get_url_content(url):
"""
url
:param url:
:return:
"""
content = ''
headers = get_headers()
res = request.Request(url, headers=headers)
try:
resp = request.urlopen(res, timeout=10)
content = resp.read().decode('utf-8')
except Exception as e:
print('exception: %s' % e)
return content
def parse_content(content):
"""
:param content:
:return:
"""
movie = {}
html = etree.HTML(content)
try:
info = html.xpath("//div[@id='info']")[0]
movie['director'] = info.xpath("./span[1]/span[2]/a/text()")[0]
movie['screenwriter'] = info.xpath("./span[2]/span[2]/a/text()")[0]
movie['actors'] = '/'.join(info.xpath("./span[3]/span[2]/a/text()"))
movie['type'] = '/'.join(info.xpath("./span[@property='v:genre']/"
"text()"))
movie['initialReleaseDate'] = '/'.\
join(info.xpath(".//span[@property='v:initialReleaseDate']/text()"))
movie['runtime'] = \
info.xpath(".//span[@property='v:runtime']/text()")[0]
def str_strip(s):
return s.strip()
def re_parse(key, regex):
ret = re.search(regex, content)
movie[key] = str_strip(ret[1]) if ret else ''
re_parse('region', r'<span class="pl"> / :</span>(.*?)<br/>')
re_parse('language', r'<span class="pl"> :</span>(.*?)<br/>')
re_parse('imdb', r'<span class="pl">IMDb :</span> <a href="(.*?)" rel="external nofollow" '
r'target="_blank" >')
except Exception as e:
print(' : %s' % e)
return movie
def spider():
"""
100
:return:
"""
recommend_moives = []
movie_api = 'https://movie.douban.com/j/search_subjects?' \
'type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend' \
'&page_limit=100&page_start=0'
content = get_url_content(movie_api)
json_dict = json.loads(content)
subjects = json_dict['subjects']
for subject in subjects:
content = get_url_content(subject['url'])
movie = parse_content(content)
movie['title'] = subject['title']
movie['rate'] = subject['rate']
recommend_moives.append(movie)
print(len(recommend_moives))
print(recommend_moives)
if __name__ == '__main__':
spider()
효과.총결산
본 고 는 파충류 가 수요->분석->실현 하 는 과정 을 상세히 논술 하고 구체 적 인 코드 실현 을 제시 했다.본 논문 에 대한 학습 을 통 해 우 리 는 인터넷 파충류 의 기본 적 인 지식 과 python 의 기본 라 이브 러 리 사용 방법 을 알 수 있다.그 다음 에 저 는 고급 네트워크 작업 과 관련 된 라 이브 러 리 와 잡 은 데 이 터 를 저장 하 는 방식 으로 python 네트워크 파충 류 를 더욱 깊이 이해 할 것 입 니 다.
특별 성명
1.본 고 에서 언급 한 두 판 망 은 국내 유명 사이트 이 므 로 권리 침해 가 있 으 면 알려 주 십시오.
2.본 고 는 작가 가 창작 한 것 이 므 로 전재 할 때 출처 를 밝 혀 주 십시오.허락 없 이 는 상업 용도 로 사용 할 수 없다.
3.본 고 는 인터넷 파충류 기술 학습 교류 에 만 사용 되 고 독자 가 관련 된 모든 권리 침해 문 제 는 본 고의 작가 와 무관 하 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.