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

是一个豆瓣电影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教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(4)
小葫芦

Après être descendu, ajoutez-le simplement dans Excel, ou s'il y a des informations de classement sur la page explorée, combinez-les avec la chaîne supérieure

洪涛

250 a une interface API, et vous pouvez tout obtenir après avoir analysé json.

阿神

C'est si simple, il suffit de créer une nouvelle liste, d'utiliser une boucle for pour mettre le nom à ajouter en haut, de définir un topi variable i et de l'ajouter devant le nom, n'est-ce pas ?

大家讲道理

Est-ce vrai ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal