用正则表达式属性的方法爬取次网页https://movie.douban.com/subject/1291560/的类型,制片国家,上映日期,时长
时间: 2024-12-06 19:24:50 浏览: 11
在Python中,我们可以使用BeautifulSoup库配合正则表达式来解析HTML并提取所需信息。首先,你需要安装这两个库,如果还没有的话,可以运行`pip install beautifulsoup4 requests`。
下面是一个示例代码,假设已经导入了相关的库:
```python
import requests
from bs4 import BeautifulSoup
import re
# 请求网页内容
url = "https://movie.douban.com/subject/1291560/"
response = requests.get(url)
html_content = response.text
# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(html_content, 'lxml')
# 定义正则表达式模式来匹配目标字段
types_pattern = r'<span class="pl">(\w+)</span> / '
countries_pattern = r'<span property="v:country">(.*?)</span>'
release_date_pattern = r'<span class="year">(.*?)</span>'
duration_pattern = r'<span class="time">(\d+分钟)</span>'
# 提取属性
types = soup.find('div', {'class': 'hd'}).find_all(text=re.compile(types_pattern))
countries = soup.find('div', {'class': 'info'}).find(text=re.compile(countries_pattern)).strip()
release_date = soup.find('span', {'property': 'v:initial-release-date'}).text
duration = soup.find(text=re.compile(duration_pattern)).group(1)
# 输出结果
print("类型:", [type.strip() for type in types])
print("制片国家:", countries)
print("上映日期:", release_date)
print("时长:", duration + "分钟")
```
注意:这个例子基于对页面结构的猜测,实际的HTML可能会有所不同,导致正则表达式无法准确匹配。如果你能获取到真实的HTML源码,会更有利于编写精确的正则表达式。
阅读全文