Heim > Backend-Entwicklung > Python-Tutorial > Verwenden Sie Python2.7, um die 250 besten Douban-Filme aufzunehmen

Verwenden Sie Python2.7, um die 250 besten Douban-Filme aufzunehmen

高洛峰
Freigeben: 2016-11-03 16:53:31
Original
2091 Leute haben es durchsucht

Dieses Plug-in kann viele Inhalte, einschließlich HTML, problemlos anzeigen.

Öffnen Sie die 250 besten Douban-Filmranking-Webseiten und stellen Sie fest, dass sich auf jeder Seite 25 Filme befinden, also insgesamt 10 Seiten, und die URL jeder Seite Seite hat die folgenden Eigenschaften:

http://movie.douban.com/top250?start=0

http://movie.douban.com/top250?start=25

http://movie.douban.com/top250?start=50

http://movie.douban.com/top250?start=75

.... ..

Analog dazu müssen Sie nur eine Schleife verwenden, um die folgenden 0, 25,...225 zu verarbeiten.

Klicken Sie auf der Webseite auf einen beliebigen chinesischen Filmnamen, klicken Sie mit der rechten Maustaste und wählen Sie „Element anzeigen“, um den HTML-Quellcode anzuzeigen: Verwenden Sie Python2.7, um die 250 besten Douban-Filme aufzunehmen

Sie können dort den Filmnamen finden wird in eingefügt, und gleichzeitig werden auch englische Namen in eingefügt.

Sie können den regulären Ausdruck (.*) verwenden, um den chinesischen Namen und den englischen Namen des Films abzugleichen, aber hier möchten Sie nur den chinesischen Namen erhalten, also müssen Sie filtern der englische Name.

Die Filtermethode kann mithilfe der Funktion find(str,pos_start,pos_end) implementiert werden, um die eindeutigen Merkmale in englischen Namen zu eliminieren: „ “ und „/“, Einzelheiten finden Sie im Code.

3. Code-Implementierung

Der Code hier ist relativ einfach, sodass keine Funktionen definiert werden müssen.

#!/usr/bin/python
# -*- coding: utf-8 -*- #
import requests,sys,re
from bs4 import BeautifulSoup

reload(sys)
sys.setdefaultencoding('utf-8')
print '正在从豆瓣电影Top250抓取数据......'

for page in range(10):
    url='https://movie.douban.com/top250?start='+str((page-1)*25)
    print '---------------------------正在爬取第'+str(page+1)+'页......--------------------------------'
    html=requests.get(url)
    html.raise_for_status()
    try:
        soup=BeautifulSoup(html.text,'html.parser')
        soup=str(soup) # 利用正则表达式需要将网页文本转换成字符串
        title=re.compile(r&#39;<span class="title">(.*)</span>&#39;)
        names=re.findall(title,soup)
        for name in names:
            if name.find(&#39; &#39;)==-1 and name.find(&#39;/&#39;)==-1: # 剔除英文名(英文名特征是含有&#39; &#39;和&#39;/&#39;)
                print name
            # 创建名称,评分
    except Exception as e:
        print e
print &#39;爬取完毕!&#39;
Nach dem Login kopieren


Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage