最近在学习爬虫技术,在网上找了一些资料,也找到了一些例子,但找到的例子是基于python2的所以就改成了python3的,而且加了一个将电影的评分也打印出来的语句,话不多说,上代码:

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

#reload(sys)
#sys.setdefaultencoding('utf-8')
print('正在从豆瓣电影Top250抓取数据......')
pnames=[]
pscore=[]
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'<span class="title">(.*)</span>')
        sco00=re.compile(r'<span class="rating_num" property="v:average">(.*)</span>')
        names=re.findall(title,soup)
        score=re.findall(sco00,soup)
        for name in names:
            if name.find('/')==-1: # 剔除英文名(英文名特征是含有'/')
                pnames.append(name)
        for core in score:
            pscore.append(core)
    except Exception as e:
        print(e)
print('爬取完毕!')

for i in range(len(pscore)):
    print(pnames[i] + '\t' + pscore[i])

输出结果如图:
输出结果1
输出结果2
输出结果3
等等。。。。。

参考资料:
http://www.cnblogs.com/carpenterworm/p/6026274.html

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐