有多少艾克以重 发表于 2025-5-4 22:55:58

帮忙做一个爬虫

老师要求我们统计一些药品的数据,三个网站相互比较,能有人爬虫帮忙吗

FishC 发表于 2025-5-4 22:56:42


注意:爬虫开发需遵守目标网站robots.txt协议及相关法律法规,请确认合法性后再进行。以下示例仅供学习参考


基础爬虫实现思路:

1. 使用Python的 requests + BeautifulSoup 组合
2. 准备三个目标网站的URL列表
3. 分析目标网站页面结构(需自行审查元素)
4. 数据存储建议用CSV格式


import requests
from bs4 import BeautifulSoup
import pandas as pd

# 基础爬取函数模板
def crawl_website(url):
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'}
    try:
      response = requests.get(url, headers=headers, timeout=10)
      soup = BeautifulSoup(response.text, 'html.parser')
      
      # 这里需要根据实际网页结构修改选择器
      medicines = []
      for item in soup.select('.medicine-item'):# 示例选择器
            name = item.select_one('.name').text.strip()
            price = item.select_one('.price').text.strip()
            medicines.append({'名称': name, '价格': price})
            
      return medicines
    except Exception as e:
      print(f'爬取失败:{str(e)}')
      return []

# 示例使用
websites = [
    'https://example-drug-site-1.com',
    'https://example-drug-site-2.com',
    'https://example-drug-site-3.com'
]

all_data = []
for url in websites:
    data = crawl_website(url)
    all_data.extend(data)

# 保存为CSV
df = pd.DataFrame(all_data)
df.to_csv('medicine_data.csv', index=False)


关键步骤说明:


[*]需要安装依赖库:pip install requests beautifulsoup4 pandas
[*]必须修改 .medicine-item 等选择器匹配目标网站结构
[*]建议添加延时:time.sleep(1) 避免被封禁
[*]动态加载的网站需要改用 Selenium


如果需要具体分析某个网站,可以提供(不包含敏感信息的)页面结构示例,我可以帮忙写对应的解析逻辑。请务必先确认:
1. 目标网站是否允许爬取
2. 是否需要登录认证
3. 数据是否为动态加载

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

有多少艾克以重 发表于 2025-5-4 23:09:05

FishC 发表于 2025-5-4 22:56
基础爬虫实现思路:

1. 使用Python的 requests + BeautifulSoup 组合


就是想单纯查找英文文献,网站不敏感

player-none 发表于 2025-5-5 09:03:16

有多少艾克以重 发表于 2025-5-4 23:09
就是想单纯查找英文文献,网站不敏感

哪三个网站?
页: [1]
查看完整版本: 帮忙做一个爬虫