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

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

membalas semua(4)
小葫芦

Selepas mendaki ke bawah, cuma tambahkannya dalam excel, atau jika terdapat maklumat kedudukan pada halaman yang dirangkak, kemudian gabungkannya dengan rentetan teratas

洪涛

250 mempunyai antara muka api, dan anda boleh mendapatkan segala-galanya selepas menghuraikan json.

阿神

Ia sangat mudah, cuma buat senarai baharu, gunakan gelung for untuk meletakkan nama yang hendak ditambahkan ke atas, dan tentukan topi pembolehubah i dan tambahkannya di hadapan nama, bukan?

大家讲道理

Begitukah?

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan