python - 尝试从未指定数量的网页中抓取,不会引发异常
问题描述
我正在学习关于 udemy 的 python 课程,我们正在做一个关于网站解析的部分。这个特定的练习希望我们解析一个网站的多个页面,我们不知道总共有多少页面。
我的想法是创建一个 try 和 except 块,除非我无法获得打印任何内容的异常。我是新手,所以这很可能是一个非常愚蠢的错误。这是我的代码。它可以完成主要工作,即从每个页面中获取所有唯一作者并附加到列表中,但我希望它在我们到达不存在的页面时停止尝试解析。我知道该网站有 10 个页面,但我将范围设置为 1-19 只是为了查看我的代码在到达不存在的页面时是否会引发异常。
import requests
import bs4
authors = []
try:
valid_page = True
for n in range(1,20):
base_url = 'http://quotes.toscrape.com/page/{}/'
scrape_url = base_url.format(n)
res = requests.get(scrape_url)
soup = bs4.BeautifulSoup(res.text,'lxml')
for item in soup.select('.author'):
unique_author = item.text
if unique_author not in authors:
authors.append(unique_author)
except exception as ex:
print(ex)
valid_page = False
解决方案
推荐阅读
- oracle - 如何使用 regexp_like 查询安全地防止 Oracle 的 sql 注入
- c# - C#如何在对WebApi的请求中忽略Xml Header?
- java - 我的选择排序代码在一个索引上失败
- python - 多项朴素贝叶斯 + neg_log_loss + 机器学习 + Python:如何使用 neg_log_loss 和 cross_val_score()
- python - 将嵌套的 json 插入 Postgres 的列中
- json - Facebook 在数据导出的 JSON 文件中使用什么编码?
- r - 如何从 boot.hclust 对象(pvclust)中提取节点位置?
- excel - VBA代码将数据范围从SharePoint中的关闭文件复制到打开文件
- git - 当分支不排队时git-svn合并
- r - 在 r 中添加异常的分位数分箱