使用Python BeautifulSoup抓取香港贸发局展会信息的方法咨询
提取HKTDC展会信息的实现方案
先修正URL一致性
你提供的目标是英文站点,但代码里请求的是中文站点,先统一链接(按需选择语言版本),以下以中文站为例演示提取流程:
1. 抓取所有展会条目
首先定位页面中展会条目的统一容器,通过find_all获取所有展会项:
import requests from bs4 import BeautifulSoup # 替换为你需要的站点链接(英文/中文) url = "https://event.hktdc.com/tc/?eventFormat=Exhibition&countryRegion=Hong-Kong&location=all&year=2023&p=1#list" # 添加请求头模拟浏览器,避免被反爬拦截 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" } response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, "html.parser") # 获取页面内所有展会条目 event_items = soup.find_all("div", class_="event-list-item")
2. 提取单条展会核心信息
遍历每个展会条目,提取标题、时间、地点、详情链接等常用信息:
for item in event_items: # 提取展会标题 title = item.find("h3", class_="event-title").get_text(strip=True) # 提取展会时间 event_time = item.find("div", class_="event-date").get_text(strip=True) # 提取展会地点 location = item.find("div", class_="event-venue").get_text(strip=True) # 拼接完整详情链接 detail_link = "https://event.hktdc.com" + item.find("a")["href"] # 输出或存储信息 print(f"【展会标题】: {title}") print(f"【举办时间】: {event_time}") print(f"【举办地点】: {location}") print(f"【详情链接】: {detail_link}") print("-" * 50)
3. 提取额外细节(如展会简介)
如果需要抓取展会简介,可在遍历中添加以下代码:
# 在循环内添加 summary = item.find("div", class_="event-desc").get_text(strip=True) print(f"【展会简介】: {summary}")
注意事项
- 若爬取英文站点,仅需替换URL为你提供的英文链接,页面元素类名基本一致,可直接复用代码;
- 若遇到请求失败,可更换
User-Agent值,或添加timeout参数避免超时; - 如需翻页抓取,可修改URL中的
p参数(如p=2对应第二页),循环请求即可。
内容的提问来源于stack exchange,提问作者user20288916
相关产品推荐
相关产品推荐

