고양이 형제는 036-- 파충류에게 파충류 -BeautifulSoup 연습을 작성하는 방법을 가르쳐 - 일 - 일을 영화 top250-를 해결하기 위해

값의 인덱스 및 목록 탐색

list1 = ['我','爱','中国']
for i,k in enumerate(list1):
    print(i)
    print(k)
复制代码

코드의 객체 지향 스타일은 서면 의견이었다

import requests
import time
from bs4 import BeautifulSoup
class Spider():
    def __init__(self, base_url):
        '''
        根据入口url来实例化movie对象
        '''
        self.movie = Movie(base_url)
    def start(self):
        '''
        1. 获取每个分页的url
        2. 遍历, 把每个分页url作为入口
        3. 进入页面, 爬取数据
        4. 保存到movies_250_list
        5. 处理movies_250_list, 生成markdown
        '''
        for movie_url in self.get_page_urls():
            self.make_movie_list(movie_url)
        self.movie.make_markdown()
    def make_movie_list(self, url):
        '''
        从页面获取电影的相关信息, 保存到movie_250_list
        '''
        res = requests.get(url)
        print(url)  # 打印url, 显示进度
        time.sleep(2)  # 暂停2秒, 防止频率过高, 被封IP
        movie_html_tag_obj = BeautifulSoup(res.text, 'html.parser')
        for i in movie_html_tag_obj.find('ol', class_='grid_view').find_all('div', class_='item'):
            tmp_dict = {}  # 设置对象, 用来保存电影的名称, 封面, 评论, 和评分(电影的排名可以参考list的索引)
            tmp_dict['movie_title'] = i.find(
                'div', class_='pic').find('img')['alt']
            tmp_dict['movie_img'] = i.find(
                'div', class_='pic').find('img')['src']
            tmp_dict['movie_desc'] = i.find('span', class_='inq').text
            tmp_dict['movie_score'] = i.find('span', class_='rating_num').text
            self.movie.movies_250_list.append(tmp_dict)
    def get_page_urls(self):
        '''
        获取分页的url
        因为豆瓣250电影太多, 所以进行了分页, 我们需要进入每个分页里面, 进行爬取
        '''
        movie_url_list = [self.movie.base_url]  # 声明变量的时候, 先把第一个网址写进去
        res = requests.get(self.movie.base_url)
        movie_index_tag_obj = BeautifulSoup(res.text, 'html.parser')
        a_tag_list = movie_index_tag_obj.find('div', class_='paginator').find_all('a')  # 从a标签的href获取url
        for i in a_tag_list[:9]:
            movie_url_list.append(self.movie.base_url+i['href'])
        return movie_url_list
class Movie():
    base_url = ''  # 入口url
    movies_250_list = []  # 电影250列表
    def __init__(self, base_url):
        '''
        初始化对象时, 存储url, 方便以后调用
        '''
        self.base_url = base_url
    def make_markdown(self):
        '''
        创建markdown, 把之前存储的信息, 写入markdown
        '''
        with open('douban250.md', 'w', encoding='utf8') as file:
            for index, movie_dict in enumerate(self.movies_250_list):
                file.write('![]({})\n'.format(movie_dict['movie_img']))
                file.write('## {}\n'.format(movie_dict['movie_title']))
                file.write(
                    '### {} [top{}-{}]\n'.format(movie_dict['movie_desc'], index+1, movie_dict['movie_score']))
                file.write('---\n\n')
if __name__ == "__main__":
    spider = Spider('https://movie.douban.com/top250')  # 初始化爬虫, 传入入口url
    spider.start()  # 开始爬取
复制代码

빠른 이동 :

고양이 형제는 000-- 파충류를 작성하는 방법을 가르쳐은 .md 시작
함수와 변수 .md 인쇄 () - 고양이 형제는 파충류 001를 작성하는 방법을 가르쳐
피카추 .md 인쇄 - 고양이 형제는 파충류 002-- 작업을 쓰고 가르치는
고양이 형제는 파충류를 작성하는 방법을 가르쳐 .md 003 데이터 형식 변환
고양이 형제는 파충류 004-- 데이터 형식 변환을 작성하는 방법을 가르쳐은 - 작은 실천 .md
고양이 형제는 파충류 005-- 데이터 형식 변환을 작성하는 방법을 가르쳐 - 작은 작업 .md
당신이 파충류를 작성 가르쳐 고양이 형제 006- - 조건 및 중첩 조건이 .md
.md 작은 운영 - 고양이 형제는 007 파충류 조건 및 중첩 조건 작성 가르쳐
파충류 008 고양이 형제가 당신이 쓰는 가르쳐를 - 기능 .md () 입력
고양이 형제가 파충류를 작성하는 방법을 가르쳐 009 - 입력 () 함수 - AI 작은 사랑의 학생들은 .md
순환 .md, 고양이 형제는 010 파충류, 사전의 목록을 작성하는 방법을 가르쳐
고양이 형제는 파충류 011-- 목록, 사전, 순환을 작성하는 방법을 가르쳐 - 작은 작업이 .md
고양이 형제는 부울 값을 기록하는 방법을 가르쳐, 4 파충류 012-- 문 .md
부울 값을 기록하는 방법을 가르쳐 고양이 형제, 4 파충류 013-- 문 - 작은 작업 .md
PK 게임 - 고양이 형제는 파충류 014 쓰기 가르칩니다. MD의
PK 게임 (새 개정) .md - 고양이 형제는 파충류 015 작성하는 방법을 가르쳐
당신이 .md 파충류 016-- 기능을 쓸 수 가르쳐 고양이 형제
고양이 형제는 파충류 017-- 함수를 작성하는 방법을 가르쳐을 - 작은 작업이 .md
당신을 가르 칠 고양이 형제 파충류 018--debug.md 쓰기
debug- 일 - 고양이 형제는 019 파충류 작성 가르칩니다. MD의
고양이 형제는 파충류에게 .md (에) 020-- 클래스와 객체 작성 가르쳐
고양이 형제는 파충류 021-- 클래스와 객체 (가) 작성 가르쳐 - 작업을 .md
고양이 형제는 파충류 022-- 클래스와 객체를 작성하는 방법을 가르쳐 (하단) .md
작업 .md - 고양이 형제는 파충류 023-- 클래스와 객체를 (아래) 작성 가르쳐
고양이 형제는 파충류 작성 024-- 코드 디코딩을 가르 칠 && .md
고양이 형제는 파충류 025 && 디코딩 코드 작성 가르쳐 - 작은 작업 .md
고양이 형제는 .md 파충류 026-- 모듈을 작성하는 방법을 가르쳐
고양이 형제는 파충류 027-- 모듈을 작성하는 방법을 가르쳐 것은 .md 소개
고양이 형제는 파충류를 작성하는 방법을 가르쳐 028- - 도입 모듈 - 작은 일 - 게시판 .md
고양이 형제는 예비 -requests.md 파충류 파충류 029-- 작성하는 방법을 가르쳐
당신이 030-- 예비 -requests- 작업이 .md 파충류 파충류 작성 가르쳐 고양이 형제
고양이 형이 031 파충류를 작성하는 방법을 가르쳐 - 파충류 기준 -html.md
고양이 형제는 파충류 파충류 032-- 첫 경험을 작성하는 방법을 가르쳐 -BeautifulSoup.md
고양이 형제는 033-- 첫 경험 -BeautifulSoup- 작업이 .md 파충류 파충류 작성하는 방법을 가르쳐
당신이 파충류를 작성 가르쳐 고양이 형제 034- - .md 연습 -BeautifulSoup 파충류
일 - - top250.md 필름 고양이 형제 당신은 035-- 파충류 파충류 -BeautifulSoup 연습 쓰기 가르쳐
고양이 형제는 036-- 파충류 파충류 -BeautifulSoup 연습을 작성 가르 칠을 - 작업 - 작업을 .md 영화 top250-를 해결하기 위해
아기 .md 노래를 듣고 - 고양이 형제는 037-- 파충류를 작성하는 방법을 가르쳐
고양이 형제는 인수가 .md 요청 038-- 파충류를 작성하는 방법을 가르쳐
당신이 데이터를 저장 파충류 039-- .md 작성 가르쳐 고양이 형제
고양이 형제가 파충류를 작성하는 방법을 가르쳐를 040-- 스토어 데이터 - 작업 .md
고양이 형제는 파충류를 작성하는 방법을 가르쳐 041-- 아날로그 로그인 -cookie.md
고양이 형제는 파충류 042 작성하는 방법을 가르쳐 - .md 세션 사용
고양이 형제는 .md 파충류 043-- 아날로그 브라우저를 작성하는 방법을 가르쳐
고양이 형제는 044-- 아날로그 브라우저를 파충류를 작성 가르 칠을 - 작업이 .md
고양이 형제가 파충류를 작성하는 방법을 가르쳐를 045-- 코 루틴 .md
고양이 형제는 파충류 046-- 코 루틴을 작성하는 방법을 가르쳐 - 연습 -되지 지방 .md 무엇을 먹고
고양이 형제는 파충류 047 작성하는 방법을 가르쳐 - .md scrapy 프레임 워크
고양이 형제는 파충류를 작성 가르 칠을 048-- .md 파충류 및 방지
고양이 형제는 파충류 049-- 끝 일러스트 sahua를 작성하는 방법을 가르쳐 .md

HTTPS : //juejin.im/post/5cfc4adce51d45508c2fb81b 재현

추천

출처blog.csdn.net/weixin_34253126/article/details/91416928