电影网站是随意选取的,如果要爬取其他电影网站需要有所改动。
利用 requests 库向服务器发送请求获取数据,利用 BeautifulSoup 库解析所获取的数据。代码如下:
from bs4 import BeautifulSoup
import requests,time
urlm = ['http://dianying.2345.com/list/kehuan-------{}.html'.format(str(i)) for i in range(1,36)] # 利用列表解析式,实现科幻片多页爬取
def movie(url,dicti=None):
wb_data = requests.get(url) # 向服务器发送请求,要料
soup = BeautifulSoup(wb_data.text,'lxml') # 汤 = BeautifulSoup(料,食谱)
titles = soup.select('em.emTit > a') # 从汤里挑出各种做好的东西,如标题,评分
scores = soup.select('span.pRightBottom > em')
if dicti==None:
for title,score in zip(titles,scores): # 每次循环将标题和评分组成一对放入字典
length = len(score.get_text())-1 # 获取评分的数字部分长度
dicti = {
'score': score.get_text()[0:length], # 获取评分的数字部分,例如,“7.8分”的数字部分是7.8,“9分”的数字部分是9
'title':title.get_text()
}
if float(dicti['score']) >= 9.1: # 如果评分大于9.1分输出
print(dicti)
for single_url in urlm: # 调用函数
movie(single_url)
time.sleep(3) # 时间保护,防止IP被封
网友评论