web - 我对大学课程的网络抓取有问题
问题描述
嗨,我正在尝试在网上搜索阅读大学:http ://www.reading.ac.uk/ready-to-study/study/subject-area/modern-languages-and-european-studies-ug/ba- spanish-and-history.aspx但我无法提取它的课程持续时间。谁能帮我。我使用下面的代码?
duration_title = soup.find('li', text=re.compile(r'Course duration', re.IGNORECASE))
if duration_title:
duration = duration_title.find_next_sibling('strong')
if duration:
duration_text = duration.get_text()
duration_ = re.search(r"\d+(?:.\d+)|\d+", duration_text)
if duration_ is not None:
if duration_.group() == 1 or '1' in duration_.group():
course_data['Duration'] = duration_.group()
course_data['Duration_Time'] = 'Year'
elif '0.5' in duration_.group():
course_data['Duration'] = '6'
course_data['Duration_Time'] = 'Months'
else:
course_data['Duration'] = duration_.group()
course_data['Duration_Time'] = 'Years'
else:
course_data['Duration'] = 'Not mentioned'
course_data['Duration_Time'] = 'Not mentioned'
print('Duration: ', str(course_data['Duration']) + ' / ' + course_data['Duration_Time'])
解决方案
仅尝试text
并删除li
:
soup.find(text=re.compile(r'Course duration', re.IGNORECASE))
推荐阅读
- c++ - 如何实现虚拟接口 C++
- java - 复合设计模式能否避免使用集合(List、HashTable)数据结构?
- c# - 无限转轮 Unity2d
- css - 如何使用 css 使 2 个导航重叠
- angular - 当数据来自 API 时,如何设置 mat-select 的默认值?
- xamarin - 如何创建针对特定 android 版本的 xamarin android 项目?
- vbscript - VBscript 错误代码 800A0046 权限被拒绝
- python - 如何根据列值重复熊猫数据框记录
- typescript - 无法导入从 bazel 构建的打字稿模块
- typescript - Vue.js 生命周期事件以及从哪里开始加载商店属性 (Vue.observable)