[Scrape Center - ssr1]新手向静态页面爬虫
本帖最后由 三滑稽甲苯 于 2022-1-11 23:46 编辑# 前言
题目地址:https://ssr1.scrape.center/
主网站地址:https://scrape.center/
这是一个专供爬虫练习的网站,里面有各种类型的题目。我们从最简单的第一个开始,这个题目没有任何反爬措施,并且是静态网页,抓包都不用了。
# 过程
打开页面,单击下一页,网址变为:https://ssr1.scrape.center/page/2
观察到一共有10页,于是使用`for i in range(1, 10):`来实现页数的遍历,使用`f'{url}/page/{i}'`(事先`url = 'https://ssr1.scrape.center'`)拼接网址
F12审查元素,可以通过`el-card__body`这个class来遍历到所有的卡片
通过`name`定位电影名,通过`a`标签的`href`属性辅以url拼接定位详情页面的链接
通过`categories`定位一组标签,`button`定位各个标签
通过`info`定位国家、时长、上映时间
通过`score`定位评分(这里需要数据清洗,因为直接获取text属性的话前面会有回车和空格)
# 完整代码
```python
from requests import Session
from bs4 import BeautifulSoup as bs
from time import time
start = time()
x = Session()
url = 'https://ssr1.scrape.center'
for i in range(1, 10):
r = x.get(f'{url}/page/{i}')
soup = bs(r.text, 'html.parser')
cards = soup.find_all('div', class_='el-card__body')
print(f'Page {i}/10')
for card in cards:
print()
print(' ', card.h2.text)
tags = card.find('div', class_='categories').find_all('span')
print('Score:', card.find('p', class_='score').text[-3:])
print('Tags:', ' '.join(.text for i in range(len(tags))]))
infos = card.find_all('div', class_='info')
spans = infos.find_all('span')
print('Country:', spans.text)
print('Duration:', spans.text)
print('Release date:', infos.text[-1:-3])
print('Link:', url + card.find('a', class_='name')['href'])
print()
print(f'Time used: {time() - start}s')
```
# 效果图
虽然看不懂,感谢分享~! 感谢分享~! 感谢分享,学习了
页:
[1]