示例代码:(其中有易犯错处已注释)
import requests
from bs4 import BeautifulSoup
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0'}
##同一headers,便于之后一致的for循环
film_page=[] ##建立空列表,方面存放循环的内容
for i in range(1,11):
url='https://movie.......com/top250?start={}&filter='.format((i-1)*25)
## 循环获取网站1-10页的内容
res=requests.get(url,headers=headers) ##要有headers!!!
bs=BeautifulSoup(res.text,'html.parser')
parent=bs.find_all('div',class_='item')
## print(parent)
## print(type(parent))
## print(len(parent)) ##检查可能的错误
for ele in parent:
seq=ele.find('div',class_='pic').find('em',class_='').text.strip()
film=ele.find('div',class_='hd').find('a').find('span',class_='title').text.strip()
score=ele.find('div',class_='star').find('span',class_='rating_num').text.strip()
try:
recommend=ele.find('p',class_='quote').find('span',class_='inq').text.strip()
except AttributeError:
print('影片{}无推荐语'.format(film)) ## 部分无内容可能会导致报错
link=ele.find('div',class_='hd').find('a')['href']
film_page+=['序号:',seq,'片名:',film,'评分:',score,'推荐语:',recommend,'链接:',link] ## film_page将所有循环内容装进列表
print(film_page)
网友评论