You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Webscraping:如何用字符串列表实现多URL遍历的for循环

遍历字符串列表实现多站点爬取的解决方案

你只需要直接遍历给定的字符串列表即可,不需要额外的方法。以下是两种简洁的实现方式:

方式一:直接在循环中使用元组

把分类字符串元组直接放在in后面,替换掉原代码中的...:

from bs4 import BeautifulSoup
import requests
import pandas as pd

# 补充headers定义,避免请求被目标站点拦截
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}

movielist = []

# 直接遍历分类字符串元组
for x in ('action', 'comedy', 'thriller', 'drama', 'sport'):
    r = requests.get(f'https://movie.com/{x}', headers=headers)
    soup = BeautifulSoup(r.text, 'html.parser')
    spiele = soup.find_all('div', {'class': 'row'})
    
    # 补充数据处理逻辑(示例)
    # for item in spiele:
    #     title = item.find('h3').text.strip()
    #     movielist.append({'category': x, 'title': title})

方式二:先定义列表变量再遍历

如果后续需要修改分类,先将分类存入变量会更便于维护:

from bs4 import BeautifulSoup
import requests
import pandas as pd

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}

movielist = []
# 定义分类列表
movie_categories = ['action', 'comedy', 'thriller', 'drama', 'sport']

# 遍历分类列表
for x in movie_categories:
    r = requests.get(f'https://movie.com/{x}', headers=headers)
    soup = BeautifulSoup(r.text, 'html.parser')
    spiele = soup.find_all('div', {'class': 'row'})
    
    # 补充数据处理逻辑(示例)
    # for item in spiele:
    #     title = item.find('h3').text.strip()
    #     movielist.append({'category': x, 'title': title})

关键注意事项

  • 必须补充headers定义,否则多数站点会拒绝无标识的请求,示例中的User-Agent可根据自身浏览器信息调整。
  • 循环内需补充从spiele提取目标数据并写入movielist的逻辑,否则脚本仅会完成页面请求,不会留存有效数据。

内容的提问来源于stack exchange,提问作者user17871699

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 15:15:35