网页爬虫 - 求Python大神帮帮忙!
高洛峰
高洛峰 2017-04-18 09:19:30
0
4
229

是一个豆瓣电影Top250代码,肿么能够实现在电影名前加上Top1 Top2
啊?

"""
爬取豆瓣电影TOP250 - 完整示例代码
"""

import codecs

import requests
from bs4 import BeautifulSoup

DOWNLOAD_URL = 'http://movie.douban.com/top250/'


def download_page(url):
    return requests.get(url, headers={
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36'
    }).content


def parse_html(html):
    soup = BeautifulSoup(html)
    movie_list_soup = soup.find('ol', attrs={'class': 'grid_view'})

    movie_name_list = []

    for movie_li in movie_list_soup.find_all('li'):
        detail = movie_li.find('p', attrs={'class': 'hd'})
        movie_name = detail.find('span', attrs={'class': 'title'}).getText()

        movie_name_list.append(movie_name)

    next_page = soup.find('span', attrs={'class': 'next'}).find('a')
    if next_page:
        return movie_name_list, DOWNLOAD_URL + next_page['href']
    return movie_name_list, None


def main():
    url = DOWNLOAD_URL

    with codecs.open('movies', 'wb', encoding='utf-8') as fp:
        while url:
            html = download_page(url)
            movies, url = parse_html(html)
            fp.write(u'{movies}\n'.format(movies='\n'.join(movies)))


if __name__ == '__main__':
    main()

谢谢大神!

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

모든 응답(4)
小葫芦

내려간 후 엑셀로 추가하거나, 크롤링된 페이지에 순위 정보가 있으면 상단 문자열과 결합하세요

洪涛

250에는 API 인터페이스가 있으며 json을 구문 분석한 후 모든 것을 얻을 수 있습니다.

阿神

아주 간단합니다. 새 목록을 만들고 for 루프를 사용하여 추가할 이름을 맨 위에 놓고 i 변수 topi를 정의하여 이름 앞에 추가하면 됩니다.

大家讲道理

그런가요?

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿