使用Python语言,运用正则表达式编写代码 2、爬取新浪微博热搜榜页面中的热搜关键词和排行榜序号
时间: 2024-12-02 10:14:48 浏览: 21
在Python中,我们可以使用`re`模块(Regular Expression,正则表达式库)来处理字符串,并结合`requests`库来抓取网页数据。首先,确保已经安装了这两个库,如果没有可以使用以下命令安装:
```bash
pip install requests regex
```
下面是一个简单的示例,演示如何从新浪热搜榜页面获取热搜关键词和排行榜序号:
```python
import re
import requests
# 发送GET请求到新浪热搜榜URL
url = "https://s.weibo.com/top/summary?cate=realtimehot"
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
# 解析HTML内容,找到包含热搜关键词和序号的部分,通常在`<li>`标签中
html_content = response.text
pattern = r'<li class="S_txt2">(\d+)</span>\s*-\s*(.*?)</a></li>'
# 使用正则表达式查找匹配项
matches = re.findall(pattern, html_content, re.IGNORECASE | re.DOTALL)
# 热搜关键词和排行榜序号分别存储在元组中
keywords_and_positions = [(int(position), keyword) for position, keyword in matches]
# 打印结果
for i, (position, keyword) in enumerate(keywords_and_positions, start=1):
print(f"排名{i}: {keyword}")
else:
print("请求失败,状态码:", response.status_code)
```
注意:这个例子假设HTML结构保持不变,并且`class="S_txt2"`和`class="rank"`等类名可用于定位元素。实际抓取时,网站可能会有变化,需要根据最新版的HTML结构调整正则表达式。
阅读全文