最近在學習爬蟲技術,在網上找了一些資料,也找到了一些例子,但找到的例子是基於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])
輸出結果如圖:
等等。。。。。