使用Requests爬取koleo.pl列车时刻表结果不符,求排查代码问题
排查koleo.pl列车时刻表爬取结果不符的问题
先看你代码里最明显的问题:
- URL格式错误:你请求的URL里日期部分有个多余的空格——
19-03- 2019,这会导致服务器无法识别正确的日期参数,返回的自然不是你要的19-03-2019 10:00的时刻表页面。先把这个空格去掉,修正后的URL应该是:https://koleo.pl/rozklad-pkp/krakow-glowny/radom/19-03-2019_10:00/all/EIP-IC--EIC-EIP-IC-KM-REG
接下来,建议你先验证请求是否成功:在获取response后,先打印response.status_code,如果返回的不是200,说明请求本身就有问题(比如URL错误、被服务器拦截)。如果是200,再继续排查内容。
如果修正URL后还是得不到预期内容,那大概率是动态内容加载的问题:koleo.pl可能用JavaScript动态渲染列车时刻表数据,而requests只能获取页面的静态HTML源码,无法执行JS。这种情况下,你需要用浏览器自动化工具(比如Selenium或Playwright)来模拟真实浏览器加载页面,等JS渲染完成后再抓取内容。
给你一个修正URL后的基础测试代码:
import requests from bs4 import BeautifulSoup s = requests.Session() s.headers.update({ "User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36' }) # 修正后的URL,去掉日期里的空格 url = 'https://koleo.pl/rozklad-pkp/krakow-glowny/radom/19-03-2019_10:00/all/EIP-IC--EIC-EIP-IC-KM-REG' response = s.get(url) # 先检查请求状态 print("Response Status Code:", response.status_code) if response.status_code == 200: soup = BeautifulSoup(response.text, 'lxml') # 可以尝试定位时刻表相关的元素,比如找包含列车信息的表格或div train_table = soup.find('table', class_='timetable__table') # 站点实际使用的类名 if train_table: print(train_table.prettify()) else: print("未找到时刻表元素,可能是动态加载的") else: print(f"请求失败,状态码:{response.status_code}")
如果测试后发现确实是动态加载,那可以改用Selenium,示例代码大概是这样:
from selenium import webdriver from selenium.webdriver.chrome.options import Options from bs4 import BeautifulSoup options = Options() options.add_argument('--headless=new') # 无头模式,不显示浏览器窗口 options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36') driver = webdriver.Chrome(options=options) driver.get('https://koleo.pl/rozklad-pkp/krakow-glowny/radom/19-03-2019_10:00/all/EIP-IC--EIC-EIP-IC-KM-REG') # 等待页面加载完成(可以用显式等待,比如等待某个元素出现) driver.implicitly_wait(10) soup = BeautifulSoup(driver.page_source, 'lxml') # 现在就可以正常解析动态渲染后的内容了 print(soup.prettify()) driver.quit()
内容的提问来源于stack exchange,提问作者infinitesimal
相关产品推荐
相关产品推荐

